Submission #224385

#TimeUsernameProblemLanguageResultExecution timeMemory
224385PedroBigManDatum (COCI20_datum)C++14
50 / 50
31 ms640 KiB
#include <iostream> #include <vector> #include <cmath> #include <algorithm> #include <string> #include <map> #include <set> #include <queue> #include <deque> using namespace std; typedef long long int ll; typedef unsigned long long int ull; typedef long double ld; #define REP(i,a,b) for(ll i=a; i<b; i++) #define pb push_back #define mp make_pair #define pl pair<ll,ll> #define ff first #define ss second #define INF 100000000000000000LL ll insig; #define In(vecBRO, LENBRO) REP(IBRO,0,LENBRO) {cin>>insig; vecBRO.pb(insig);} void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;} string Expand(ll a, ll di) { string ans=""; REP(i,0,di) { ans+=((char) (((ll)('0')) + a%10)); a/=10; } reverse(ans.begin(),ans.end()); return ans; } ll inv(ll x) {ll d1=x/10; ll d2=x%10; return (10*d2+d1);} int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll T; cin>>T; vector<ll> lim; lim.pb(31); lim.pb(29); lim.pb(31); lim.pb(30); lim.pb(31); lim.pb(30); lim.pb(31); lim.pb(31); lim.pb(30); lim.pb(31); lim.pb(30); lim.pb(31); vector<ll> a; REP(i,0,10000) { ll m=inv(i/100); if(m>12 || m==0) {continue;} ll d=inv(i%100); if(d==0 || d>lim[m-1]) {continue;} if(m==2 && d==29 && i%4!=0) {continue;} a.pb(d+100*m+10000*i); } REP(t,0,T) { string s; cin>>s; vector<ll> digits; REP(i,0,s.size()) { if(s[i]=='.') {continue;} digits.pb((ll) (s[i]-'0')); } ll y=1000*digits[4]+100*digits[5]+10*digits[6]+digits[7]; ll m=10*digits[2]+digits[3]; ll d=10*digits[0]+digits[1]; ll v=10000*y+100*m+d; ll ans=*upper_bound(a.begin(),a.end(),v); d=ans%100; ans/=100; m=ans%100; ans/=100; y=ans; cout<<Expand(d,2)<<"."<<Expand(m,2)<<"."<<Expand(y,4)<<"."<<endl; } return 0; }

Compilation message (stderr)

datum.cpp: In function 'void Out(std::vector<long long int>)':
datum.cpp:14:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define REP(i,a,b) for(ll i=a; i<b; i++)
datum.cpp:23:29:
 void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
                             ~~~~~~~~~~~~
datum.cpp:23:25: note: in expansion of macro 'REP'
 void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
                         ^~~
datum.cpp: In function 'int main()':
datum.cpp:14:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define REP(i,a,b) for(ll i=a; i<b; i++)
datum.cpp:59:13:
         REP(i,0,s.size()) 
             ~~~~~~~~~~~~         
datum.cpp:59:9: note: in expansion of macro 'REP'
         REP(i,0,s.size()) 
         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...