Submission #434075


Source Code Expand

#include <iostream>
#include <algorithm>
#include <functional>
#include <string>
#include <climits>
#include <vector>
#include <numeric>
#include <complex>
#include <map>
#include <bitset>
using namespace std;

//#define __int64 long long
#define long __int64
#define REP(i,a,b) for(int i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)
const int Vecy[4] = {0,-1,0,1};
const int Vecx[4] = {1,0,-1,0};

//部分点のみ
int main(){
	int x[5][5];
	bool use[26] = {false};
	int pointy[8] = {0};
	int pointx[8] = {0};
	int index[8] = {0,1,2,3,4,5,6,7};
	int ans = 0;
	int number[8];
	int aki = 0;
	bool flg;
	
	for(int iy=0; iy<5; iy++){
		for(int ix=0; ix<5; ix++){
			cin >> x[iy][ix];
			use[ x[iy][ix] ] = true;
		}
	}
	
	for(int iy=0; iy<5; iy++){
		for(int ix=0; ix<5; ix++){
			if(x[iy][ix] == 0){
				pointy[aki] = iy;
				pointx[aki] = ix;
				aki ++;
			}
		}
	}
	
	int aa = 0;
	for(int i=1; i<=25; i++){
		if(!use[i]){
			number[aa] = i;
			aa ++;
		}
	}
	
	if(aa > 8){
		cout << "muri";
		return 0;
	}
	
	do {
		//入れてみる
		for(int i=0; i<aki; i++){
			x[pointy[i]][pointx[i]] = number[ index[i] ];
		}
		
		//横テスト
		flg = true;
		for(int iy=0; iy<5; iy++){
			for(int ix=1; ix<=3; ix++){
				if(x[iy][ix-1] < x[iy][ix] && x[iy][ix] < x[iy][ix+1]){
					flg = false;
					break;
				}
				if(x[iy][ix-1] > x[iy][ix] && x[iy][ix] > x[iy][ix+1]){
					flg = false;
				}
			}
		}
		
		if(!flg){
			continue;
		}
		
		//縦テスト
		for(int iy=1; iy<=3; iy++){
			for(int ix=0; ix<5; ix++){
				if(x[iy-1][ix] < x[iy][ix] && x[iy][ix] < x[iy+1][ix]){
					flg = false;
					break;
				}
				if(x[iy-1][ix] > x[iy][ix] && x[iy][ix] > x[iy+1][ix]){
					flg = false;
					break;
				}
			}
		}
		
		if(flg){
			ans ++;
		}
		
		
	} while( next_permutation(index, index + aki ));     // 次の順列を生成
	
	cout << ans << endl;
    
    return 0;
}

Submission Info

Submission Time
Task D - 25個の整数
User b158b
Language C++ (GCC 4.9.2)
Score 30
Code Size 1974 Byte
Status WA
Exec Time 31 ms
Memory 928 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 0 / 70
Status
AC × 4
AC × 19
AC × 19
WA × 10
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt
Subtask2 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt, test-2-01.txt, test-2-02.txt, test-2-03.txt, test-2-04.txt, test-2-05.txt, test-2-06.txt, test-2-07.txt, test-2-08.txt, test-2-09.txt, test-2-10.txt
Case Name Status Exec Time Memory
sample-01.txt AC 28 ms 852 KB
sample-02.txt AC 30 ms 920 KB
sample-03.txt AC 26 ms 920 KB
sample-04.txt AC 26 ms 920 KB
test-1-01.txt AC 30 ms 920 KB
test-1-02.txt AC 26 ms 924 KB
test-1-03.txt AC 27 ms 852 KB
test-1-04.txt AC 26 ms 920 KB
test-1-05.txt AC 26 ms 916 KB
test-1-06.txt AC 29 ms 916 KB
test-1-07.txt AC 30 ms 920 KB
test-1-08.txt AC 29 ms 916 KB
test-1-09.txt AC 31 ms 916 KB
test-1-10.txt AC 26 ms 920 KB
test-1-11.txt AC 27 ms 924 KB
test-1-12.txt AC 29 ms 920 KB
test-1-13.txt AC 27 ms 912 KB
test-1-14.txt AC 29 ms 920 KB
test-1-15.txt AC 29 ms 928 KB
test-2-01.txt WA 26 ms 928 KB
test-2-02.txt WA 25 ms 924 KB
test-2-03.txt WA 26 ms 924 KB
test-2-04.txt WA 26 ms 928 KB
test-2-05.txt WA 26 ms 928 KB
test-2-06.txt WA 26 ms 928 KB
test-2-07.txt WA 25 ms 928 KB
test-2-08.txt WA 26 ms 920 KB
test-2-09.txt WA 26 ms 928 KB
test-2-10.txt WA 26 ms 928 KB