# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
224788 | 2020-04-18T19:28:36 Z | MKopchev | Teams (CEOI11_tea) | C++14 | 473 ms | 34680 KB |
#include<bits/stdc++.h> using namespace std; const int nmax=1e6+42; int n; pair<int/*low*/,int/*id*/> inp[nmax]; int dp[nmax]; int parent[nmax]; int look_up[nmax]; void construct(int sz) { int mx=0; look_up[0]=0; for(int i=1;i<=n;i++) { dp[i]=-1; parent[i]=-1; if(i-inp[i].first>=0&&look_up[i-inp[i].first]>=i-sz) { parent[i]=look_up[i-inp[i].first]; dp[i]=dp[look_up[i-inp[i].first]]+1; } if(dp[i]>=mx) { mx=dp[i]; look_up[i]=i; } else look_up[i]=look_up[i-1]; } } int main() { scanf("%i",&n); for(int i=1;i<=n;i++) { scanf("%i",&inp[i].first); inp[i].second=i; } sort(inp+1,inp+n+1); construct(n); printf("%i\n",dp[n]); int want=dp[n]; int ok=n,not_ok=inp[n].first-1; while(ok-not_ok>1) { int av=(ok+not_ok)/2; construct(av); if(dp[n]==want)ok=av; else not_ok=av; } construct(ok); int pos=n; for(int i=dp[n];i>=1;i--) { printf("%i",pos-parent[pos]); for(int j=parent[pos]+1;j<=pos;j++) { printf(" %i",inp[j].second); } printf("\n"); pos=parent[pos]; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 384 KB | Output is correct |
2 | Correct | 5 ms | 384 KB | Output is correct |
3 | Correct | 4 ms | 384 KB | Output is correct |
4 | Correct | 4 ms | 384 KB | Output is correct |
5 | Correct | 4 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 384 KB | Output is correct |
2 | Correct | 5 ms | 384 KB | Output is correct |
3 | Correct | 5 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 384 KB | Output is correct |
2 | Correct | 5 ms | 384 KB | Output is correct |
3 | Correct | 5 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 512 KB | Output is correct |
2 | Correct | 6 ms | 512 KB | Output is correct |
3 | Correct | 7 ms | 512 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 432 KB | Output is correct |
2 | Correct | 7 ms | 512 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 39 ms | 2936 KB | Output is correct |
2 | Correct | 38 ms | 2680 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 45 ms | 3160 KB | Output is correct |
2 | Correct | 36 ms | 2552 KB | Output is correct |
3 | Correct | 42 ms | 3192 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 317 ms | 20972 KB | Output is correct |
2 | Correct | 316 ms | 22520 KB | Output is correct |
3 | Correct | 370 ms | 24568 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 445 ms | 27512 KB | Output is correct |
2 | Correct | 472 ms | 30852 KB | Output is correct |
3 | Correct | 406 ms | 29816 KB | Output is correct |
4 | Correct | 411 ms | 28408 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 473 ms | 27512 KB | Output is correct |
2 | Correct | 314 ms | 34680 KB | Output is correct |
3 | Correct | 406 ms | 30712 KB | Output is correct |
4 | Correct | 468 ms | 32504 KB | Output is correct |