# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
140120 | 2019-08-02T06:14:24 Z | StevenH | Sails (IOI07_sails) | C++14 | 1000 ms | 2568 KB |
#include <iostream> #include <cstdio> #include <algorithm> #include <ctime> using namespace std; const int maxn=100005; struct Mast{ int h,k; }m[maxn]; bool comp(Mast &x,Mast &y) {return x.h<y.h;} int n; int s[maxn]; int main() { clock_t start; start=clock(); scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&m[i].h,&m[i].k); int r=0; int ed=0; sort(m,m+n,comp); for(int i=0;i<n;i++) { int res=m[i].h-r; r=m[i].h; s[0]+=res; /*for(int i=0;i<=ed;i++)printf("%d ",s[i]); printf("\n");*/ int k=m[i].k; int t=0; while(k>0) { if(k>s[t]) { k-=s[t]; t++; } else if(k<=s[t]) { for(int j=t;j>0;j--) { s[j]+=s[j-1]; s[j-1]=0; } s[t]-=k; s[t+1]+=k; k=0; if(t+1>ed)ed=t+1; } } /*for(int i=0;i<=ed;i++)printf("%d ",s[i]); printf("\n\n");*/ } long long ans=0; for(long long i=0;i<=ed;i++)ans+=(i*(i-1))/2*(long long)(s[i]); printf("%lld\n",ans); //printf("time:%2f\n",(float)(clock()-start)/CLOCKS_PER_SEC); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 380 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 420 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 22 ms | 504 KB | Output is correct |
2 | Correct | 571 ms | 1216 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 809 ms | 1240 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 615 ms | 1600 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1071 ms | 2192 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1070 ms | 2344 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1063 ms | 2568 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |