結果
| 問題 |
No.33 アメーバがたくさん
|
| コンテスト | |
| ユーザー |
184
|
| 提出日時 | 2014-10-03 19:31:39 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,604 bytes |
| コンパイル時間 | 792 ms |
| コンパイル使用メモリ | 78,864 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-24 09:53:42 |
| 合計ジャッジ時間 | 2,699 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 11 |
コンパイルメッセージ
main.cpp: In function ‘int solve()’:
main.cpp:52:1: warning: no return statement in function returning non-void [-Wreturn-type]
52 | }
| ^
main.cpp:19:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
19 | scanf("%lld%lld%lld",&n,&d,&t);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:24:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
24 | scanf("%lld",&x[i]);
| ~~~~~^~~~~~~~~~~~~~
ソースコード
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <map>
#include <vector>
#include <queue>
using namespace std;
/*
正解してたら匿名でも問題投稿ができる(実現度さらにアップ)!!!
答えが合わない、テストケースが知りたい・・・・・
*/
long long n,d,t,x[101];
int solve(){
scanf("%lld%lld%lld",&n,&d,&t);
map<long long,long long> mp;
vector<long long> ps;
for(int i=0;i<n;i++){
//long long x;
scanf("%lld",&x[i]);
ps.push_back(x[i]);
}
sort(ps.begin(),ps.end());
long long diff[101];
long long inc=1+t+t;
mp[0]=t*d;
long long ans=1+t+t;
for(int i=1;i<n;i++){
diff[i]=ps[i]-ps[0];
if(mp[diff[i]%d]==0){
mp[diff[i]%d]=diff[i]+t*d;
ans+=inc;
}
else{
if(mp[diff[i]%d]>=diff[i]-t*d){
ans+=inc-((mp[diff[i]%d]-(diff[i]-t*d))/d+1);
mp[diff[i]%d]=diff[i]+t*d;
}
else ans+=inc;
}
}
printf("%lld\n",ans);
}
int main(){
solve();
/*//return 0;
// long long n,d,t;scanf("%lld%lld%lld",&n,&d,&t);
map<long long,int> mp;
for(int i=0;i<n;i++){
// long long x;
// scanf("%lld",&x);
mp[x[i]]++;
}
long long next,prev;
map<long long,int>::iterator it;
map<long long,int> nmp;
while(t--){
for(it=mp.begin();it!=mp.end();it++){
next=it->first+d;
prev=it->first-d;
nmp[next]++;
nmp[prev]++;
nmp[it->first]++;
}
mp=nmp;
}
long long ans=0;
for(it=mp.begin();it!=mp.end();it++){
if(it->second)ans++;
}
printf("%lld\n",ans);
*/
return 0;
}
184