Submission #92220
Source Code Expand
// include {{{
#include <cstdio>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
//#include <deque>
#include <stack>
#include <queue>
//#include <map>
#include <set>
#include <algorithm>
#include <cmath>
#include <numeric>
//#include <complex>
// }}}
using namespace std;
// macro {{{
typedef long long ll;
typedef vector<int> vec;
typedef vector<vec> mat;
typedef pair<int,int> P;
#define rep(i,n) for(int i=0,__end=(n);i<__end;++i)
#define REP(i,j,k) for(int i=j,__end=(k);i<__end;++i)
//#define foreach(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define priority_queue_greater(T) priority_queue< T, vector<T>, greater<T> >
#define F first
#define S second
// BEGIN CUT HERE {{{
// convert {{{
template<typename T> T fromString(string& s){
T res;
std::istringstream is(s);
is >> res;
return res;
}
template<typename T> string toString(T& v){
stringstream ss;
ss << v;
return ss.str();
} // }}}
// inspect {{{
string inspect( string str );
template<typename T> string inspect( T v );
template<typename T,typename U> string inspect( pair<T,U> v );
template<typename T> string inspect( vector<T> v );
string inspect( string str ){
return "\"" + str + "\"";
}
template<typename T> string inspect( T v ){
return toString<T>( v );
}
template<typename T,typename U> string inspect( pair<T,U> v ){
return "(" + inspect(v.first) + "," + inspect(v.second) + ")";
}
template<typename T> string inspect( vector<T> v ){
string res = "[";
rep(i,v.size()){
if( i != 0 ){ res += ","; }
res += inspect( v[i] );
}
return res + "]";
}
// }}}
// puts {{{
template<typename T> void puts( T val ){
cout << inspect(val) << endl;
}
template<typename T> void puts( string name, T val ){
cout << name << ": " << inspect(val) << endl;
}
// }}}
// END CUT HERE }}}
// }}}
int w,h;
int count(int i, mat& map){
if( w * h <= i ){ return 1; }
int y = i / w;
int x = i % w;
//puts(P(x,y));
int res = 0, now;
bool check;
// 1
check = true;
now = 1;
if(0 < y && map[y-1][x] == now){ check = false; }
if(0 < x && map[y][x-1] == now){ check = false; }
if(check){
map[y][x] = 1;
res += count(i+1,map);
}
// 2
check = true;
now = 2;
if(0 < y && map[y-1][x] == now){ check = false; }
if(0 < x && map[y][x-1] == now){ check = false; }
if(1 < y && map[y-2][x] == now){ check = false; }
if(1 < x && map[y][x-2] == now){ check = false; }
if(check){
map[y][x] = 2;
res += count(i+1,map);
}
// 3
check = true;
now = 3;
if(0 < y && map[y-1][x] == now){ check = false; }
if(0 < x && map[y][x-1] == now){ check = false; }
if(1 < y && map[y-2][x] == now){ check = false; }
if(1 < x && map[y][x-2] == now){ check = false; }
if(2 < y && map[y-3][x] == now){ check = false; }
if(2 < x && map[y][x-3] == now){ check = false; }
if(check){
map[y][x] = 3;
res += count(i+1,map);
}
map[y][x] = 0;
return res;
}
int main(){
while( cin >> w >> h ){
if( w > 4 || h > 4 ){ cout << 42 << endl; continue; }
mat map(h, vec(w,0));
cout << count(0, map) << endl;
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - 天下一二三パズル |
| User | jimon |
| Language | C++ (G++ 4.6.4) |
| Score | 40 |
| Code Size | 3332 Byte |
| Status | WA |
| Exec Time | 32 ms |
| Memory | 820 KiB |
Judge Result
| Set Name | small | medium | large | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 40 / 40 | 0 / 20 | 0 / 60 | ||||||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| small | small, small/00_manual1, small/00_manual2, small/01_small_0, small/01_small_1, small/01_small_10, small/01_small_11, small/01_small_12, small/01_small_13, small/01_small_14, small/01_small_15, small/01_small_2, small/01_small_3, small/01_small_4, small/01_small_5, small/01_small_6, small/01_small_7, small/01_small_8, small/01_small_9 |
| medium | small, small/00_manual1, small/00_manual2, small/01_small_0, small/01_small_1, small/01_small_10, small/01_small_11, small/01_small_12, small/01_small_13, small/01_small_14, small/01_small_15, small/01_small_2, small/01_small_3, small/01_small_4, small/01_small_5, small/01_small_6, small/01_small_7, small/01_small_8, small/01_small_9, medium, medium/02_00_middle_0, medium/02_00_middle_1, medium/02_00_middle_10, medium/02_00_middle_11, medium/02_00_middle_12, medium/02_00_middle_13, medium/02_00_middle_14, medium/02_00_middle_15, medium/02_00_middle_16, medium/02_00_middle_17, medium/02_00_middle_18, medium/02_00_middle_19, medium/02_00_middle_2, medium/02_00_middle_20, medium/02_00_middle_21, medium/02_00_middle_22, medium/02_00_middle_23, medium/02_00_middle_24, medium/02_00_middle_25, medium/02_00_middle_26, medium/02_00_middle_27, medium/02_00_middle_28, medium/02_00_middle_29, medium/02_00_middle_3, medium/02_00_middle_30, medium/02_00_middle_31, medium/02_00_middle_32, medium/02_00_middle_33, medium/02_00_middle_34, medium/02_00_middle_35, medium/02_00_middle_36, medium/02_00_middle_37, medium/02_00_middle_38, medium/02_00_middle_39, medium/02_00_middle_4, medium/02_00_middle_40, medium/02_00_middle_41, medium/02_00_middle_42, medium/02_00_middle_43, medium/02_00_middle_44, medium/02_00_middle_45, medium/02_00_middle_46, medium/02_00_middle_47, medium/02_00_middle_48, medium/02_00_middle_49, medium/02_00_middle_5, medium/02_00_middle_6, medium/02_00_middle_7, medium/02_00_middle_8, medium/02_00_middle_9, medium/02_01_middle_random_0, medium/02_01_middle_random_1, medium/02_01_middle_random_2, medium/02_01_middle_random_3 |
| large | large, medium, small, large/03_00_big_0, large/03_00_big_1, large/03_00_big_10, large/03_00_big_11, large/03_00_big_12, large/03_00_big_13, large/03_00_big_14, large/03_00_big_15, large/03_00_big_16, large/03_00_big_17, large/03_00_big_18, large/03_00_big_19, large/03_00_big_2, large/03_00_big_20, large/03_00_big_21, large/03_00_big_22, large/03_00_big_23, large/03_00_big_24, large/03_00_big_25, large/03_00_big_26, large/03_00_big_27, large/03_00_big_28, large/03_00_big_29, large/03_00_big_3, large/03_00_big_30, large/03_00_big_31, large/03_00_big_32, large/03_00_big_33, large/03_00_big_34, large/03_00_big_35, large/03_00_big_36, large/03_00_big_37, large/03_00_big_38, large/03_00_big_39, large/03_00_big_4, large/03_00_big_5, large/03_00_big_6, large/03_00_big_7, large/03_00_big_8, large/03_00_big_9, large/03_01_big_random_0, large/03_01_big_random_1, large/03_01_big_random_2, large/03_01_big_random_3, large/03_01_big_random_4, large/03_01_big_random_5, medium/02_00_middle_0, medium/02_00_middle_1, medium/02_00_middle_10, medium/02_00_middle_11, medium/02_00_middle_12, medium/02_00_middle_13, medium/02_00_middle_14, medium/02_00_middle_15, medium/02_00_middle_16, medium/02_00_middle_17, medium/02_00_middle_18, medium/02_00_middle_19, medium/02_00_middle_2, medium/02_00_middle_20, medium/02_00_middle_21, medium/02_00_middle_22, medium/02_00_middle_23, medium/02_00_middle_24, medium/02_00_middle_25, medium/02_00_middle_26, medium/02_00_middle_27, medium/02_00_middle_28, medium/02_00_middle_29, medium/02_00_middle_3, medium/02_00_middle_30, medium/02_00_middle_31, medium/02_00_middle_32, medium/02_00_middle_33, medium/02_00_middle_34, medium/02_00_middle_35, medium/02_00_middle_36, medium/02_00_middle_37, medium/02_00_middle_38, medium/02_00_middle_39, medium/02_00_middle_4, medium/02_00_middle_40, medium/02_00_middle_41, medium/02_00_middle_42, medium/02_00_middle_43, medium/02_00_middle_44, medium/02_00_middle_45, medium/02_00_middle_46, medium/02_00_middle_47, medium/02_00_middle_48, medium/02_00_middle_49, medium/02_00_middle_5, medium/02_00_middle_6, medium/02_00_middle_7, medium/02_00_middle_8, medium/02_00_middle_9, medium/02_01_middle_random_0, medium/02_01_middle_random_1, medium/02_01_middle_random_2, medium/02_01_middle_random_3, small/00_manual1, small/00_manual2, small/01_small_0, small/01_small_1, small/01_small_10, small/01_small_11, small/01_small_12, small/01_small_13, small/01_small_14, small/01_small_15, small/01_small_2, small/01_small_3, small/01_small_4, small/01_small_5, small/01_small_6, small/01_small_7, small/01_small_8, small/01_small_9 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| large/03_00_big_0 | WA | 23 ms | 656 KiB |
| large/03_00_big_1 | WA | 21 ms | 780 KiB |
| large/03_00_big_10 | WA | 18 ms | 780 KiB |
| large/03_00_big_11 | WA | 21 ms | 780 KiB |
| large/03_00_big_12 | WA | 20 ms | 780 KiB |
| large/03_00_big_13 | WA | 22 ms | 784 KiB |
| large/03_00_big_14 | WA | 21 ms | 776 KiB |
| large/03_00_big_15 | WA | 20 ms | 772 KiB |
| large/03_00_big_16 | WA | 20 ms | 788 KiB |
| large/03_00_big_17 | WA | 19 ms | 784 KiB |
| large/03_00_big_18 | WA | 18 ms | 776 KiB |
| large/03_00_big_19 | WA | 19 ms | 776 KiB |
| large/03_00_big_2 | WA | 18 ms | 776 KiB |
| large/03_00_big_20 | WA | 19 ms | 776 KiB |
| large/03_00_big_21 | WA | 20 ms | 776 KiB |
| large/03_00_big_22 | WA | 21 ms | 784 KiB |
| large/03_00_big_23 | WA | 21 ms | 772 KiB |
| large/03_00_big_24 | WA | 21 ms | 780 KiB |
| large/03_00_big_25 | WA | 21 ms | 780 KiB |
| large/03_00_big_26 | WA | 20 ms | 732 KiB |
| large/03_00_big_27 | WA | 19 ms | 780 KiB |
| large/03_00_big_28 | WA | 20 ms | 776 KiB |
| large/03_00_big_29 | WA | 21 ms | 784 KiB |
| large/03_00_big_3 | WA | 20 ms | 648 KiB |
| large/03_00_big_30 | WA | 20 ms | 776 KiB |
| large/03_00_big_31 | WA | 19 ms | 776 KiB |
| large/03_00_big_32 | WA | 21 ms | 776 KiB |
| large/03_00_big_33 | WA | 20 ms | 784 KiB |
| large/03_00_big_34 | WA | 19 ms | 780 KiB |
| large/03_00_big_35 | WA | 20 ms | 788 KiB |
| large/03_00_big_36 | WA | 21 ms | 784 KiB |
| large/03_00_big_37 | WA | 20 ms | 732 KiB |
| large/03_00_big_38 | WA | 20 ms | 784 KiB |
| large/03_00_big_39 | WA | 18 ms | 776 KiB |
| large/03_00_big_4 | WA | 19 ms | 780 KiB |
| large/03_00_big_5 | WA | 19 ms | 772 KiB |
| large/03_00_big_6 | WA | 18 ms | 780 KiB |
| large/03_00_big_7 | WA | 19 ms | 732 KiB |
| large/03_00_big_8 | WA | 19 ms | 780 KiB |
| large/03_00_big_9 | WA | 19 ms | 788 KiB |
| large/03_01_big_random_0 | WA | 20 ms | 784 KiB |
| large/03_01_big_random_1 | WA | 18 ms | 780 KiB |
| large/03_01_big_random_2 | WA | 19 ms | 736 KiB |
| large/03_01_big_random_3 | WA | 20 ms | 780 KiB |
| large/03_01_big_random_4 | WA | 19 ms | 776 KiB |
| large/03_01_big_random_5 | WA | 21 ms | 780 KiB |
| medium/02_00_middle_0 | WA | 21 ms | 780 KiB |
| medium/02_00_middle_1 | WA | 19 ms | 784 KiB |
| medium/02_00_middle_10 | WA | 21 ms | 780 KiB |
| medium/02_00_middle_11 | WA | 20 ms | 772 KiB |
| medium/02_00_middle_12 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_13 | WA | 19 ms | 696 KiB |
| medium/02_00_middle_14 | WA | 19 ms | 696 KiB |
| medium/02_00_middle_15 | WA | 18 ms | 772 KiB |
| medium/02_00_middle_16 | WA | 18 ms | 732 KiB |
| medium/02_00_middle_17 | WA | 19 ms | 776 KiB |
| medium/02_00_middle_18 | WA | 20 ms | 784 KiB |
| medium/02_00_middle_19 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_2 | WA | 19 ms | 696 KiB |
| medium/02_00_middle_20 | WA | 19 ms | 784 KiB |
| medium/02_00_middle_21 | WA | 18 ms | 784 KiB |
| medium/02_00_middle_22 | WA | 20 ms | 776 KiB |
| medium/02_00_middle_23 | WA | 18 ms | 784 KiB |
| medium/02_00_middle_24 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_25 | WA | 20 ms | 788 KiB |
| medium/02_00_middle_26 | WA | 20 ms | 732 KiB |
| medium/02_00_middle_27 | WA | 18 ms | 780 KiB |
| medium/02_00_middle_28 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_29 | WA | 22 ms | 776 KiB |
| medium/02_00_middle_3 | WA | 19 ms | 768 KiB |
| medium/02_00_middle_30 | WA | 19 ms | 784 KiB |
| medium/02_00_middle_31 | WA | 18 ms | 776 KiB |
| medium/02_00_middle_32 | WA | 20 ms | 784 KiB |
| medium/02_00_middle_33 | WA | 22 ms | 776 KiB |
| medium/02_00_middle_34 | WA | 20 ms | 820 KiB |
| medium/02_00_middle_35 | WA | 18 ms | 780 KiB |
| medium/02_00_middle_36 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_37 | WA | 19 ms | 736 KiB |
| medium/02_00_middle_38 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_39 | WA | 20 ms | 764 KiB |
| medium/02_00_middle_4 | WA | 20 ms | 780 KiB |
| medium/02_00_middle_40 | WA | 21 ms | 780 KiB |
| medium/02_00_middle_41 | WA | 18 ms | 776 KiB |
| medium/02_00_middle_42 | WA | 20 ms | 788 KiB |
| medium/02_00_middle_43 | WA | 20 ms | 780 KiB |
| medium/02_00_middle_44 | WA | 19 ms | 784 KiB |
| medium/02_00_middle_45 | WA | 19 ms | 776 KiB |
| medium/02_00_middle_46 | WA | 18 ms | 780 KiB |
| medium/02_00_middle_47 | WA | 20 ms | 784 KiB |
| medium/02_00_middle_48 | WA | 18 ms | 780 KiB |
| medium/02_00_middle_49 | WA | 18 ms | 768 KiB |
| medium/02_00_middle_5 | WA | 19 ms | 780 KiB |
| medium/02_00_middle_6 | WA | 18 ms | 776 KiB |
| medium/02_00_middle_7 | WA | 18 ms | 780 KiB |
| medium/02_00_middle_8 | WA | 21 ms | 780 KiB |
| medium/02_00_middle_9 | WA | 20 ms | 784 KiB |
| medium/02_01_middle_random_0 | WA | 20 ms | 784 KiB |
| medium/02_01_middle_random_1 | WA | 19 ms | 780 KiB |
| medium/02_01_middle_random_2 | WA | 21 ms | 780 KiB |
| medium/02_01_middle_random_3 | WA | 18 ms | 784 KiB |
| small/00_manual1 | AC | 19 ms | 780 KiB |
| small/00_manual2 | AC | 20 ms | 736 KiB |
| small/01_small_0 | AC | 32 ms | 784 KiB |
| small/01_small_1 | AC | 21 ms | 772 KiB |
| small/01_small_10 | AC | 20 ms | 780 KiB |
| small/01_small_11 | AC | 18 ms | 776 KiB |
| small/01_small_12 | AC | 19 ms | 768 KiB |
| small/01_small_13 | AC | 18 ms | 784 KiB |
| small/01_small_14 | AC | 18 ms | 780 KiB |
| small/01_small_15 | AC | 20 ms | 808 KiB |
| small/01_small_2 | AC | 20 ms | 784 KiB |
| small/01_small_3 | AC | 20 ms | 820 KiB |
| small/01_small_4 | AC | 20 ms | 732 KiB |
| small/01_small_5 | AC | 20 ms | 772 KiB |
| small/01_small_6 | AC | 18 ms | 784 KiB |
| small/01_small_7 | AC | 20 ms | 776 KiB |
| small/01_small_8 | AC | 21 ms | 780 KiB |
| small/01_small_9 | AC | 20 ms | 780 KiB |