JAPLJ Contest D: Dianthus
問題
http://judge.imoz.jp/page.php?page=view_problem&pid=45&cid=8
回答(1回目) - Wrong Answer - 0% Scored
添字の順番間違えてた
回答(2回目) - Time Limit Exceeded - 30% Scored
#include <cstdio> using namespace std; int N, W, H, d, F; int a[100010], b[100010], x[100010], y[100010]; char pat[100010][16][16]; int hoge[1024][1024]; int main() { char buf[2000]; fgets(buf,sizeof(buf),stdin); sscanf(buf, "%d%d%d%d%d", &N,&W,&H,&d,&F); for (int i = 0; i < N; ++ i) { fgets(buf,sizeof(buf),stdin); sscanf(buf, "%d%d%d%d", &a[i],&b[i],&x[i],&y[i]); for (int j = 0; j < d; ++ j) { fgets(pat[i][j],16,stdin); } for (int j = 0; j < y[i]; ++ j) { for (int k = 0; k < d; ++ k) { int Y = b[i] + d*j + k; for (int l = 0; l < x[i]; ++ l) { for (int m = 0; m < d; ++ m) { int X = a[i] + d*l + m; if (pat[i][k][m] != '.') { hoge[Y][X] += pat[i][k][m]-'0'; if (hoge[Y][X] > F) { printf("%d\n", i); return 0; } } } } } } } printf("%d\n",N); }