| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 158615 | 章泽原 | 18岁生日 | C++ | Accepted | 1 MS | 272 KB | 969 | 2026-08-22 15:44:54 |
#include <iostream> #include <string> #include <ctime> using namespace std; bool isLeap(int y) { return (y%4==0 && y%100!=0) || (y%400==0); } int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; long long getDays(int y,int m,int d) { long long res=0; for(int i=1;i<y;i++) res += isLeap(i)?366:365; for(int i=1;i<m;i++){ res += days[i]; if(i==2 && isLeap(y)) res++; } res += d; return res; } int main(){ int T; cin>>T; while(T--){ string s; cin>>s; int y = stoi(s.substr(0,4)); int m = stoi(s.substr(5,2)); int d = stoi(s.substr(8,2)); int ny = y+18; int nd = d; int nm = m; if(m==2 && d==29 && !isLeap(ny)){ cout << -1 << endl; continue; } long long d1 = getDays(y,m,d); long long d2 = getDays(ny,nm,nd); cout << d2 - d1 << endl; } return 0; }