1634F - Fibonacci Additions - CodeForces Solution


brute force data structures hashing implementation math *2700

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#include <cstdio>
#define N 300010
#define ll long long
int n,q,cnt;
ll a[N],f[N],p; char s[5];
void add(int x,ll v) {if(x<=n&&v) cnt-=!a[x],cnt+=!((a[x]+=v+p)%=p);}
int main()  //main functionnnn
{
    scanf("%d%d%d",&n,&q,&p);
   f[1]=1;
    for(int i=2;i<=n;i++) 
   f[i]=(f[i-1]+f[i-2])%p;
    for(int i=1;i<=n;i++) 
      scanf("%d",a+i);
    for(int i=1,x;i<=n;i++) 
       scanf("%d",&x), (a[i]+=p-x)%=p;
    for(int i=n;i>1;i--) a[i]=((a[i]-a[i-1]-a[i-2])%p+p)%p;
    for(int i=1;i<=n;i++) cnt+=!a[i];
    for(int i=1,l,r;i<=q;i++)
    {
        scanf("%s%d%d",s,&l,&r);
        if(s[0]=='A') add(l,1),add(r+1,-f[r-l+2]),add(r+2,-f[r-l+1]);
        else add(l,-1),add(r+1,f[r-l+2]),add(r+2,f[r-l+1]);
        puts(cnt==n?"YES":"NO");
    }
} //fibooo

 						 			 			 				 		 	  	  	


Comments

Submit
0 Comments
More Questions

1676D - X-Sum
1679A - AvtoBus
1549A - Gregor and Cryptography
918C - The Monster
4B - Before an Exam
545B - Equidistant String
1244C - The Football Season
1696B - NIT Destroys the Universe
1674A - Number Transformation
1244E - Minimizing Difference
1688A - Cirno's Perfect Bitmasks Classroom
219A - k-String
952A - Quirky Quantifiers
451B - Sort the Array
1505H - L BREAK into program
171E - MYSTERIOUS LANGUAGE
630D - Hexagons
1690D - Black and White Stripe
1688D - The Enchanted Forest
1674C - Infinite Replacement
712A - Memory and Crow
1676C - Most Similar Words
1681A - Game with Cards
151C - Win or Freeze
1585A - Life of a Flower
1662A - Organizing SWERC
466C - Number of Ways
1146A - Love "A"
1618D - Array and Operations
1255A - Changing Volume