Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<cstdio>
- #include<cstdlib>
- #include<cmath>
- #include<cctype>
- #include<cstring>
- #include<iostream>
- #include<string>
- #include<algorithm>
- #include<vector>
- #include<queue>
- #include<stack>
- #include<set>
- #include<map>
- #define mset(a,v) memset(a,v,sizeof(a))
- #define read freopen("input.c","r",stdin)
- #define write freopen("output.txt","w",stdout)
- #define ll long long
- #define pii pair<int,int>
- #define MAX 10000000
- using namespace std;
- char s[MAX];
- int b_leap4[MAX];
- int b_leap400[MAX];
- int b_leap100[MAX];
- int bulukulu[MAX];
- int hulukulu[MAX];
- void build()
- {
- b_leap4[0]=1;
- b_leap400[0]=1;
- b_leap100[0]=1;
- bulukulu[0]=1;
- hulukulu[0]=1;
- for(int i=1;i<MAX;i++){
- b_leap4[i]=(b_leap4[i-1]*10)%4;
- b_leap400[i]=(b_leap400[i-1]*10)%400;
- b_leap100[i]=(b_leap100[i-1]*10)%100;
- bulukulu[i]=(bulukulu[i-1]*10)%55;
- hulukulu[i]=(hulukulu[i-1]*10)%15;
- }
- }
- int main(void)
- {
- //read;
- build();
- while(scanf("%s",s)!=EOF){
- getchar();
- int l=strlen(s);
- ll leap1,leap2,leap3,bulu,hulu;
- leap1=leap2=leap3=bulu=hulu=0;
- reverse(s,s+l);
- for(int i=0;i<l;i++){
- int a;
- a=s[i]-'0';
- leap1+= ( a * b_leap4[i] ) % 4;
- leap2+= ( a * b_leap400[i] ) % 400;
- leap3+= ( a * b_leap100[i] ) % 100;
- bulu+= ( a * bulukulu[i] ) % 55;
- hulu+= ( a * hulukulu[i] ) % 15;
- }
- leap1%=4;
- leap2%=400;
- leap3%=100;
- bulu%=55;
- hulu%=15;
- int a=1,b=1,c=1;
- if( (leap1==0 && leap3!=0) || leap2==0 ){
- a=0;
- cout<<"This is leap year"<<endl;
- }
- if( hulu==0){
- b=0;
- cout<<"This is huluculu festival year."<<endl;
- }
- if( bulu==0){
- c=0;
- cout<<"This is bulukulu festival year."<<endl;
- }
- if(a==1 && b==1 && c==1)
- cout<<"This is an ordinary year."<<endl;
- cout<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement