# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
502413 | inksamurai | Datum (COCI20_datum) | C++17 | 30 ms | 460 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define rep(i,n) for(int i=0;i<n;i++)
#define crep(i,x,n) for(int i=x;i<n;i++)
#define drep(i,n) for(int i=n-1;i>=0;i--)
#define vec(...) vector<__VA_ARGS__>
#define _3qplfh5 ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
typedef long double ld;
void print(){
cout<<"\n";
}
template<class te,class ...ti>
void print(const te&v, const ti&...nv) {
cout<<v;
if(sizeof...(nv)){
cout<<" ";
print(nv...);
}
}
using pii=pair<int,int>;
using vi=vector<int>;
using vll=vector<long long>;
const int inf=1e9;
const int valid[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool validate(int d,int m,int y){
bool pok=1;
if(m>12 or m==0 or d==0) pok=0;
if(m==2){
if(y%4==0) pok=pok and (d<=29);
else pok=pok and (d<=28);
}else{
pok=pok and (d<=valid[m-1]);
}
return pok;
}
int toint(string s){
int x=1,c=0;
for(int i=sz(s)-1;i>=0;i--){
c+=int(s[i]-'0')*x;
x*=10;
}
return c;
}
vec(vi) pals;
void gap(){
vi rbt;
auto dfs=[&](auto self)->void{
if(sz(rbt)==4){
reverse(rbt.begin(),rbt.end());
int m=rbt[2]*10+rbt[3];
int d=rbt[0]*10+rbt[1];
int y=rbt[4]*1000+rbt[5]*100+rbt[6]*10+rbt[7];
bool pok=validate(d,m,y);
reverse(rbt.begin(),rbt.end());
if(pok) pals.pb(rbt);
return;
}
rep(x,10){
rbt.pb(x);
self(self);
rbt.pop_back();
}
};
dfs(dfs);
sort(pals.begin(),pals.end());
}
void slv(){
string s;
cin>>s;
string _y=s.substr(6,4);
int y=toint(_y);
while(true){
y++;
int d=(y%10)*10+(y%100)/10;
int m=((y%1000)/100)*10+((y%10000)/1000);
if(validate(d,m,y)){
if(d<10) print('0');
print(d);
print('.');
if(m<10) print('0');
print(m);
print('.');
print(y);
print(".\n");
break;
}
}
}
int main(){
_3qplfh5;
gap();
int t=0;
cin>>t;
rep(cs,t)
slv();
//
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |