Submission #00198
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include<bits/stdc++.h> using namespace std; #define int long long void solve( int n, int m){ if (n==1){ int a,b;cin>>a>>b; int ans=0; for ( int i=0;i<m;i++){ ans+=a; a-=b; } cout<<ans<< "\n" ; } else { vector<pair< int , int >>v(n); for ( int i=0;i<n;i++){ cin>>v[i].first>>v[i].second; v[i].second=-v[i].second; } sort(v.rbegin(),v.rend()); int a1=v[0].first,b1=-v[0].second; int a2=v[1].first,b2=-v[1].second; int ko1=a1,ko2=a2; int ans=0; vector< int >g(m); int kari=0; for ( int i=0;i<m;i++){ g[i]=a1-(i*b1); kari+=g[i]; } ans=kari; for ( int i=m-1;i>0;i-=2){ int mae=g[i]+g[i-1]; int ato=a1+a2; kari+=ato-mae; ans=max(ans,kari); //cout<<kari<<" "<<ato<<" "<<mae<<"\n"; } cout<<ans<< "\n" ; } } main(){ while ( true ){ int n,m;cin>>n>>m; if (n==0&&m==0){ return (0); } else { solve(n,m); } } } |
ステータス
項目 | データ |
---|---|
問題 | 0010 - ゲーム |
ユーザー名 | ei2326 |
投稿日時 | 2024-03-29 13:26:35 |
言語 | C++17 |
状態 | Accepted |
得点 | 40 |
ソースコード長 | 1195 Byte |
最大実行時間 | 212 ms |
最大メモリ使用量 | 3212 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 40 / 40 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
C1 | AC | 195 ms | 2960 KB |
1
|
C2 | AC | 212 ms | 2900 KB |
1
|
C3 | AC | 182 ms | 2876 KB |
1
|
C4 | AC | 170 ms | 3212 KB |
1
|