https://codeforces.com/gym/101955
J
签到
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<string> #include <set> #include <map> #include <queue> #include <cmath> #define ll long long #define fo(i,l,r) for(int i = l;i <= r;i++) #define fd(i,l,r) for(int i = r;i >= l;i--) using namespace std; const int maxn = 5e5+5; ll read() { ll x = 0, f = 1; char ch = getchar(); while (!(ch >= '0' && ch <= '9')) { if (ch == '-')f = -1; ch = getchar(); }; while (ch >= '0' && ch <= '9') { x = x * 10 + (ch - '0'); ch = getchar(); }; return x*f; } char s[105]; int main(){ int T; cin>>T; int n; ll ans,a,b; int Case = 0; while(T--){ n=read(); ans = 0; fo(tt,1,n) { cin.getline(s + 1, 100); b = a = 0; if (s[1] == 'b') a = 1; if (s[1] == 'c') a = 1; if (s[1] == 'i') a = 4; if (s[1] == 'l' && s[6] == 'l')a = 8; if (s[1] == '_')a = 16; if (s[1] == 'f')a = 4; if (s[1] == 'd')a = 8; if (!a)a = 16; int len = strlen(s + 1); int bs = 1; if (s[len - 1] == ']') { for (int i = len - 2; i >= 1; i--) { if (s[i] == '[')break; b = b + (s[i] - '0') * bs; bs *= 10; } } else { b = 1; } ans += a * b; } if(ans%1024) ans = ans/1024 + 1; else ans = ans/1024; cout<<"Case #"<<++Case<<": "<<ans<<endl; } return 0; }