結果
| 問題 |
No.653 E869120 and Lucky Numbers
|
| コンテスト | |
| ユーザー |
夕叢霧香(ゆうむらきりか)
|
| 提出日時 | 2018-02-23 22:39:20 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,464 bytes |
| コンパイル時間 | 881 ms |
| コンパイル使用メモリ | 79,496 KB |
| 最終ジャッジ日時 | 2025-01-05 08:28:22 |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 29 WA * 2 |
ソースコード
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
typedef long long lint;
typedef vector<int>vi;
typedef pair<int,int>pii;
#define rep(i,n)for(int i=0;i<(int)(n);++i)
vi mul3(const vi &t){
int n=t.size();
vi ret(n);
int car=0;
rep(i,n){
car=car+t[i]*3;
ret[i]=car%10;
car/=10;
}
if(car!=0)ret.push_back(car);
return ret;
}
vi add(const vi &t, int k){
int n=t.size();
vi ret(n);
int car=0;
rep(i,n){
car=car+t[i];
if(i==0)car+=k;
ret[i]=car%10;
car/=10;
}
if(car!=0)ret.push_back(car);
return ret;
}
vi to_vi(const string &s){
vi d;
rep(i,s.length())d.push_back(s[i]-'0');
reverse(d.begin(),d.end());
return d;
}
void fail(){
cout<<"No"<<endl;
exit(0);
}
void succ(){
cout<<"Yes"<<endl;
exit(0);
}
int main(){
string p;cin>>p;
vi t=to_vi(p);
t=mul3(t);
t=add(t,4);
if(0){
for(auto d:t)cerr<<" "<<d;
cerr<<endl;
}
if(t.size()<=1){
fail();
}
if(t[t.size()-1]==4){
// 0 or 6 ?
bool ok=1;
rep(i,t.size()-2){
if(t[i]%3!=0||t[i]>6)ok=0;
}
if(!ok)fail();
succ();
}
if(t[t.size()-1]==2){
bool ok=1;
int pos=-1;
rep(i,t.size()-2){
if(t[i]%3==2){
if(pos==-1){
pos=i;
}else{
fail();
}
}
if(t[i]%3==1||t[i]==9)fail();
}
rep(i,t.size()-2){
int v=t[i]/3;
if(i<pos){
if(v>2)fail();
}else{
if(v>1)fail();
}
}
succ();
}
fail();
}
夕叢霧香(ゆうむらきりか)