Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- #define sp(y) fixed<<setprecision(y)
- #define w(t) int x;cin>>x;while(x--)
- #define pi 2*acos(0.0)
- #define bg begin()
- #define en end()
- #define all(x) x.begin(),x.end()
- #define sortarr(x) sort(x,x+arrsize(x))
- #define arrsize(x) sizeof(x)/sizeof(x[0])
- #define sortall(x) sort(all(x))
- #define formn(m,n) for(m;m<=n;m++)
- #define mp make_pair
- #define pb push_back
- #define vi vector<ll>
- #define vs vector<string>
- #define REP(i,a,b) for (int i=a;i<=b;i++)
- #define sq(a) (a)*(a)
- ll pow(ll c,ll d){return d==0?:c*pow(c,d-1);}
- ll gcd(ll a,ll b) {return b==0? a:gcd(b,a%b);}
- ll lcm(ll a,ll b) {return ((a*b)/gcd(a,b));}
- //solution
- #define mx 1000005
- int prime[mx];
- void seive(){
- prime[0]=1;
- prime[1]=1;
- for(ll i=2;i<mx;i++){
- if(prime[i]==0){
- for(ll j=i*i;j<mx;j+=i){
- prime[j]=1;
- }
- }
- }
- }
- string month[12] = {"January","February","March","April","May","June","July",
- "August","September","October","November","December"};
- string weekday[7] = {"Saturday","Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday"};
- string zellersAlgorithm(int day, int month, int year){
- int mon;
- if(month > 2)
- mon = month; //for march to december month code is same as month
- else{
- mon = (12+month); //for Jan and Feb, month code will be 13 and 14
- year--; //decrease year for month Jan and Feb
- }
- int y = year % 100; //last two digit
- int c = year / 100; //first two digit
- int w = (day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + (5*c));
- w = w % 7;
- return weekday[w];
- }
- //monthanddatecheck
- int monthanddatecheck(int m,int d){
- if(m ==2 ){
- if(d==29){
- return 29;
- }else if(d<29 && d>0){
- return 1;
- }else{
- return 0;
- }
- }else if(m<0 || m>12 || d<0 || d>31){
- return 0;
- }
- return 1;
- }
- int solve(){
- int m,d,y;
- while(cin>>m>>d>>y){
- if(m==0 && d==0 && y==0){
- break;
- }
- int c = monthanddatecheck(m,d);
- if(c){
- cout<<month[m-1]<<" ";
- cout<<d<<", "<<y<<" is a ";
- cout<<zellersAlgorithm(d,m,y)<<endl;
- }else{
- cout<<m<<"/"<<d<<"/"<<y<<" is an invalid date."<<endl;
- }
- }
- return 0;
- }
- //end solution
- int main(){
- solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment