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
AC × 18
AC × 18
WA × 54
AC × 18
WA × 100
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