結果
問題 | No.1458 Segment Function |
ユーザー |
![]() |
提出日時 | 2021-03-31 22:14:05 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 12 ms / 2,000 ms |
コード長 | 1,314 bytes |
コンパイル時間 | 3,168 ms |
コンパイル使用メモリ | 181,596 KB |
最終ジャッジ日時 | 2025-01-20 03:42:21 |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <cstdio>#include <cstring>#include <iostream>#include <string>#include <cmath>#include <bitset>#include <vector>#include <map>#include <set>#include <queue>#include <deque>#include <algorithm>#include <complex>#include <unordered_map>#include <unordered_set>#include <random>#include <cassert>#include <fstream>#include <utility>#include <functional>#include <time.h>#include <stack>#include <array>#include <list>#include <atcoder/all>#define popcount __builtin_popcountusing namespace std;using namespace atcoder;typedef long long ll;typedef pair<int, int> P;int main(){string p; cin>>p;bool neg=0;if(p[0]=='-'){neg=1;}string n; cin>>n;if(n.size()==1 && n[0]=='0'){cout<<p<<endl;return 0;}if(neg) p=p.substr(1);int f[10]={6,2,5,5,4,5,6,4,7,6};ll v=-1;ll n1=100;if(n.size()==1) n1=n[0]-'0';else if(n.size()==2) n1=(n[0]-'0')*10+n[1]-'0';for(int i=0; i<n1; i++){ll s=0;if(i==0){for(int j=0; j<p.size(); j++){s+=f[p[j]-'0'];}if(neg) s++;}else{while(v){s+=f[v%10];v/=10;}}v=s;}cout<<v<<endl;return 0;}