Guruh talabasi Omonbayev Jaloliddin Sudoku
Download 40.42 Kb.
|
3- amaliyot. Sudoku
- Bu sahifa navigatsiya:
- INPUT.TXT OUTPUT.TXT
911-21 guruh talabasi Omonbayev Jaloliddin Sudoku. Судоку
Судоку размера n называется квадрат со стороной n2, разделенный на n2 средних квадратов со стороной n, каждый из которых разделен на n2 маленьких квадратов. В каждом маленьком квадрате записано число от 1 до n2. Судоку называется правильным, если в каждом столбце, каждой строке и каждом среднем квадрате встречаются все числа от 1 до n2. Недавно Вася нарисовал Судоку размера n. Ваша задача – помочь ему определить правильный ли он. Входные данные В первой строке входного файла INPUT.TXT содержится число n (1 ≤ n ≤ 10). В следующих n2 строчках содержится по n2 чисел, задающих нарисованный Васей Судоку. Все числа во входном файле натуральные и не превосходят 100 по модулю. Выходные данные Если Судоку правильный, то выведите в выходной файл OUTPUT.TXT слово «Correct», иначе выведите «Incorrect». Примеры
Sudoku
O'lchami n bo'lgan Sudoku n2 tomoni n2 o'rta kvadratga bo'lingan kvadrat deyiladi, ularning har biri n2 ta kichik kvadratga bo'linadi. Har bir kichik kvadrat 1 dan n2 gacha raqamlarni o'z ichiga oladi. Agar har bir ustun, har bir satr va har bir o'rta kvadrat 1 dan n2 gacha bo'lgan barcha raqamlarni o'z ichiga olsa, sudoku to'g'ri deb ataladi. Vasya yaqinda n o'lchamdagi Sudoku chizdi. Sizning vazifangiz unga to'g'ri yoki yo'qligini aniqlashga yordam berishdir. Ma'lumotlarni kiritish INPUT.TXT kirish faylining birinchi qatorida n (1 ≤ n ≤ 10) raqami mavjud. Keyingi n2 qatorlar har biri Vasya tomonidan chizilgan Sudokuni belgilaydigan n2 raqamlarni o'z ichiga oladi. Kirish faylidagi barcha raqamlar tabiiydir va mutlaq qiymatda 100 dan oshmaydi. Chiqish
bool check_sudoku(vector for(int i=0; i for(int j=0; j if(cur<1 || cur>n*n || used[cur]) { return false; } used[cur] = true; } } for(int j=0; j for(int i=0; i if(cur<1 || cur>n*n || used[cur]) { return false; } used[cur] = true; } } for(int i=0; i for(int ii=i*n; ii<(i+1)*n; ii++) { for(int jj=j*n; jj<(j+1)*n; jj++) { int cur = sudoku[ii][jj]; if(cur<1 || cur>n*n || used[cur]) { return false; } used[cur] = true; } } } } return true; } int main() { int n; cin >> n; vector for(int i=0; i } } if(check_sudoku(sudoku, n)) { cout << "Correct\n"; } else { cout << "Incorrect\n"; } return 0;} Download 40.42 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling