Submission #1884555
Source Code Expand
#include<bits/stdc++.h> using namespace std; #define fi first #define se second #define mk(a,b) make_pair(a,b) typedef pair<int,int> pii; typedef pair<int,pii> pipii; int INF = 1001001001; int N; int H,W; vector<pipii> X,Y; int dp[100010]; int ans = 0,MIN; int main() { scanf("%d%d",&W,&H); scanf("%d",&N); for(int i = 0; i < N; i++) { int t,d,x; scanf("%d%d%d",&t,&d,&x); if(d == 0) { X.push_back(mk(t,mk(2,x))); X.push_back(mk(t + 1,mk(0,x))); X.push_back(mk(t + 1,mk(1,-x))); } else { Y.push_back(mk(t,mk(2,x))); Y.push_back(mk(t + 1,mk(0,x))); Y.push_back(mk(t + 1,mk(1,-x))); } } sort(X.begin(),X.end()); sort(Y.begin(),Y.end()); memset(dp,0,sizeof(dp)); dp[0] = dp[W + 1] = INF; for(int i = 0; i < X.size(); i++) { pipii now = X[i]; if(now.se.fi == 2)dp[now.se.se] = INF; else if(now.se.fi == 0)dp[now.se.se] = min(dp[now.se.se + 1],dp[now.se.se - 1]) + 1; else if(now.se.fi == 1) { now.se.se *= -1; dp[now.se.se] = min(dp[now.se.se + 1],dp[now.se.se - 1]) + 1; } } MIN = 1001001001; for(int i = 1; i <= W; i++)MIN = min(MIN,dp[i]); ans += MIN; memset(dp,0,sizeof(dp)); dp[0] = dp[H + 1] = INF; for(int i = 0; i < Y.size(); i++) { pipii now = Y[i]; if(now.se.fi == 2)dp[now.se.se] = INF; else if(now.se.fi == 0)dp[now.se.se] = min(dp[now.se.se + 1],dp[now.se.se - 1]) + 1; else if(now.se.fi == 1) { now.se.se *= -1; dp[now.se.se] = min(dp[now.se.se + 1],dp[now.se.se - 1]) + 1; } } MIN = 1001001001; for(int i = 1; i <= H; i++)MIN = min(MIN,dp[i]); ans += MIN; if(ans >= INF)printf("-1\n"); else printf("%d\n",ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - ビーム |
User | unit |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2004 Byte |
Status | AC |
Exec Time | 59 ms |
Memory | 7536 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:20:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d",&W,&H); ^ ./Main.cpp:21:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&N); ^ ./Main.cpp:25:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d",&t,&d,&x); ^
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt |
Subtask2 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 640 KB |
sample_02.txt | AC | 1 ms | 640 KB |
sample_03.txt | AC | 1 ms | 640 KB |
subtask1_01.txt | AC | 1 ms | 640 KB |
subtask1_02.txt | AC | 1 ms | 640 KB |
subtask1_03.txt | AC | 1 ms | 640 KB |
subtask1_04.txt | AC | 1 ms | 640 KB |
subtask1_05.txt | AC | 1 ms | 640 KB |
subtask1_06.txt | AC | 1 ms | 640 KB |
subtask1_07.txt | AC | 1 ms | 640 KB |
subtask1_08.txt | AC | 1 ms | 640 KB |
subtask1_09.txt | AC | 1 ms | 640 KB |
subtask1_10.txt | AC | 1 ms | 640 KB |
subtask1_11.txt | AC | 1 ms | 640 KB |
subtask1_12.txt | AC | 1 ms | 640 KB |
subtask1_13.txt | AC | 1 ms | 640 KB |
subtask1_14.txt | AC | 1 ms | 640 KB |
subtask1_15.txt | AC | 1 ms | 640 KB |
subtask1_16.txt | AC | 1 ms | 640 KB |
subtask1_17.txt | AC | 1 ms | 640 KB |
subtask1_18.txt | AC | 1 ms | 640 KB |
subtask1_19.txt | AC | 1 ms | 640 KB |
subtask1_20.txt | AC | 1 ms | 640 KB |
subtask1_21.txt | AC | 1 ms | 640 KB |
subtask1_22.txt | AC | 1 ms | 640 KB |
subtask1_23.txt | AC | 1 ms | 640 KB |
subtask1_24.txt | AC | 1 ms | 640 KB |
subtask1_25.txt | AC | 1 ms | 640 KB |
subtask1_26.txt | AC | 1 ms | 640 KB |
subtask1_27.txt | AC | 1 ms | 640 KB |
subtask1_28.txt | AC | 1 ms | 640 KB |
subtask1_29.txt | AC | 1 ms | 640 KB |
subtask1_30.txt | AC | 1 ms | 640 KB |
subtask2_01.txt | AC | 50 ms | 5752 KB |
subtask2_02.txt | AC | 50 ms | 6516 KB |
subtask2_03.txt | AC | 47 ms | 5984 KB |
subtask2_04.txt | AC | 57 ms | 5284 KB |
subtask2_05.txt | AC | 57 ms | 5988 KB |
subtask2_06.txt | AC | 51 ms | 6560 KB |
subtask2_07.txt | AC | 49 ms | 6252 KB |
subtask2_08.txt | AC | 55 ms | 6024 KB |
subtask2_09.txt | AC | 55 ms | 5800 KB |
subtask2_10.txt | AC | 57 ms | 5608 KB |
subtask2_11.txt | AC | 59 ms | 7408 KB |
subtask2_12.txt | AC | 56 ms | 5604 KB |
subtask2_13.txt | AC | 49 ms | 5840 KB |
subtask2_14.txt | AC | 49 ms | 5664 KB |
subtask2_15.txt | AC | 2 ms | 768 KB |
subtask2_16.txt | AC | 1 ms | 640 KB |
subtask2_17.txt | AC | 56 ms | 5772 KB |
subtask2_18.txt | AC | 49 ms | 4780 KB |
subtask2_19.txt | AC | 53 ms | 6768 KB |
subtask2_20.txt | AC | 56 ms | 5920 KB |
subtask2_21.txt | AC | 50 ms | 6216 KB |
subtask2_22.txt | AC | 52 ms | 5940 KB |
subtask2_23.txt | AC | 47 ms | 5984 KB |
subtask2_24.txt | AC | 54 ms | 4328 KB |
subtask2_25.txt | AC | 56 ms | 5636 KB |
subtask2_26.txt | AC | 56 ms | 6104 KB |
subtask2_27.txt | AC | 56 ms | 5992 KB |
subtask2_28.txt | AC | 57 ms | 7536 KB |
subtask2_29.txt | AC | 58 ms | 5984 KB |
subtask2_30.txt | AC | 53 ms | 6048 KB |