Posts

Showing posts from June, 2016

Codeforces Noldbach problem

#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<string> #include<bitset> #define sf scanf #define pf printf #define mx 1010 using namespace std; bitset<mx>bs; int prm[mx], plen=0; void sieve() {     int i,j;     bs.set();     bs[0]=bs[1]=0;     for(i=2; i<mx; i++)     {         if(bs[i])         {             prm[plen++] = i;             for(j=i*i; j<mx; j+=i)             {                 bs[j] = 0;             }         }     }     //for(i=0; i<100; i++) pf("%d ",prm[i]); } bool isPrime(int n) {     if(n < mx) return bs[n];     for(int i=0; i<plen and prm[i] * prm[i] <= n; i++)     {         if(!(n % prm[i])) return false;     }     return true; } int noldbach[mx]; void precalculate() {     int i,j;     for(i=2; i<mx; i++)     {         for(j=0; prm[j] < i; j++)         {             if( isPrime( (prm[j] + prm[j-1] + 1) ) and (prm[j] + prm[j-1] + 1) <= i)             {      

Codeforces Panoramix's Prediction

// Accepted #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <vector> #define N 100 #define sf scanf #define pf printf using namespace std; int stats[(N/2)+1],arr[N],len=1; void prime () {     int i,j,qrt;     for (i=2;i<=N>>1;i++)     {         stats[i] = 0;     }     qrt = int (sqrt(double (N)));     for (i=3;i<=qrt;i+=2)     {         if (stats[i>>1] == 0) {         for (j=i*i;j<=N;j+=i+i)         {             stats[j>>1] = 1;         }         }     }     arr[0] = 2;     for (i=3;i<=N;i+=2)     {         if (stats[i>>1] == 0)         {             arr[len] = i;             len++;         }     } } int main() {     prime();     /*for (int i=0;i<len;i++)     {         printf("%d ",arr[i]);     }*/     int n,m,d;     bool f = false;     cin >> n >> m;     for (int i=0;i<len;i++)     {         if (m == arr[i])         {             d

UVa 12662 - Good Teacher

#include<bits/stdc++.h> #define mx 110 using namespace std; string str[mx]; int num[mx]; struct my {     int velo,posi; }; my tmp[mx]; int BS(int lo, int hi, int itm) {     int mid;     while(lo <= hi)     {         mid = (lo + hi) / 2;         if(num[mid] == itm) return mid;         else if(num[mid] > itm) hi = mid - 1;         else if(num[mid] < itm) lo = mid + 1;     }     if(lo > hi) return -1;     else return lo; } void Right(int n) {     for(int i=0; i<n; i++)     {         cout << "right of ";     } } void Left(int n) {     for(int i=0; i<n; i++)     {         cout << "left of ";     } } int main() {     ios_base::sync_with_stdio(false);     int n;     while(cin >> n)     {         int i , len=0 , pos=0;         string s;         for(i=1; i<=n; i++)         {             cin >> s;             str[i] = s;             if(s != "?")             {                 len++;                 num[len] = i;    

LightOj 1003 - Drunk

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<string> #include<stack> #define sf scanf #define pf printf #define mx 20010 #define white 0 #define gray 1 #define black 2 using namespace std; typedef map<string, int>mpsi; typedef vector < vector <int> >vvii; typedef vector<int>vi; vi G[mx]; int color[mx]; bool cycle = false; void graph_clear() {     for(int i=0; i<mx; i++)     {         G[i].clear();     } } void DFS_Visit(int u) {     color[u] = gray;     int i , v;     for(i=0; i<G[u].size(); i++)     {         v = G[u][i];         if(color[v] == white)         {             DFS_Visit(v);         }         else if(color[v] == gray)         {             cycle = true;             return;         }     }     color[u] = black; } void DFS(int node) {     memset(color, 0, sizeof(color));     int i;     for(i=0; i<node; i++)     {         if(cycle)

Codeforces Economy Game

#include<bits/stdc++.h> using namespace std; typedef long long LL; typedef unsigned long long ull; void fun() {     for(int i=0; ; i++)     {         if((i * 123456) > 1000000000)         {             cout << i;             break;         }     } } int main() {     LL n;     //fun();     while(cin >> n)     {         int i,j;         LL ans=0;         bool possible=false;         for(i=0; i<=811; i++)         {             for(j=0; j<=8101; j++)             {                 ans = (n - i * 1234567 - j * 123456); //cout << ans << " ";                 if(!(ans % 1234) and ans >=0) // ans >=0 to avoid negative value. ans er value 10^9 corss korle eta emnitei impossible. ar long long data type e seta negative value dekhabe.. tai ans >= 0 check kora :)                 {                     possible=true;                     break;                 }             }             if(possible)    

Codeforces Joty and Chocolate

#include<bits/stdc++.h> using namespace std; typedef long long LL; template<class T> T gcd(T a, T b) {     if(b==0)     {         return a;     }     else     {         return gcd(b, a%b);     } } int main() {     LL n, a, b , p , q;     while(cin >> n >> a >> b >> p >> q)     {         LL tile = (a / gcd(a,b)) * b; // lcm for n. if n=5 then, 1/2 or 1/3 + 2/2 + 3/3+4/2+5/2 or 5/3..so, lcm(a,b);         LL total = ( (n / a) * p ) + ( (n / b) * q );         tile = n / tile; // for n tile         LL ans = total - ( tile * min(p,q) );         cout << ans << "\n";     }     return 0; }

Codeforces Johny Likes Numbers

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> using namespace std; #define sf scanf #define pf printf typedef long long LL; int main() {     LL n,k;     while(~sf("%lld %lld", &n, &k))     {         if(n < k)         {             pf("%lld\n", k);         }         else         {             //LL quotient = n / k;             //k = k*(quotient+1);             k = k * ( (n/k) + 1 );             pf("%lld\n", k);         }     }     return 0; }

Codeforces War of the Corporations

#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<vector> #include<cstring> #include<string> #include<map> #define sf scanf #define pf printf using namespace std; typedef long long LL; int main() {     ios_base::sync_with_stdio(0);     string ms, sb;     while(cin >> ms)     {         cin >> sb;         LL mlen=ms.length() , sblen=sb.length(), i , cnt=0;         for(i=0; i<mlen; i++)         {             if(ms.substr(i,sblen) == sb)             {                 i+=(sblen-1);                 cnt++;             }         }         cout << cnt << "\n";     }     return 0; }

TOJ 1, 10, 100, 1000...

// Accepted // Time: 0.156 // Accepted #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<vector> #include<cstring> #include<string> #include<map> #define sf scanf #define pf printf using namespace std; typedef long long LL; typedef vector<LL>vll; //LL ar[2147516417]; vll dp; void sequence() {     LL i , sum=2;     //dp[2]=1;     dp.push_back(1);     dp.push_back(2);     for(i=2; i<=2147483648; i++)     {         sum += i;         if(sum > 2147483648)         {             //dp[sum] = 1;             //cout << sum;             break;         }         else         {             dp.push_back(sum);         }     }     //for(i=0; i<20; i++) cout << dp[i] << " ";     //cout << dp.size(); } int b_search(LL lo, LL hi, LL item) {     if(lo > hi) return -1;     int mid = (lo + hi)/2;     if(dp[mid] == item) return mid;     if(dp[mid] > item) return b_search(lo

Codeforces Bear and Five Cards

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<vector> #include<map> #include<algorithm> using namespace std; typedef vector<int>vii; typedef map<int, int>mpii; int ar[1100]; struct my {     int num, velo; }; my myar[1100]; bool cmp(my a, my b) {     return a.velo > b.velo; } int main() {     mpii mp;     int x,i;     while(cin >> x)     {         int arlen=0;         mp.clear();         if(mp.count(x) == 0)         {             ar[arlen++] = x;             mp[x] = 1;         }         else         {             mp[x]++;         }         for(i=1; i<5; i++)         {             cin >> x;             if(mp.count(x) == 0)             {                 ar[arlen++] = x;                 mp[x] = 1;             }             else             {                 mp[x]++;             }         } //        for(i=0; i<arlen; i++) //        { //            cout <<

UVa 10176 - Ocean Deep! - Make it shallow!!

#include<bits/stdc++.h> using namespace std; int main() {     int number=0 , p = 131071;     char ch;     while(cin >> ch)     {         if(ch=='#')         {             if(number)             {                 cout << "NO\n";             }             else             {                 cout << "YES\n";             }             number = 0;             continue;         }         number = (number * 2) + (ch-48); // make a number from binary to decimal         number%=p;     }     return 0; }

LightOj 1054 - Efficient Pseudo Code

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #define sf scanf #define pf printf #define S 1000100 using namespace std; typedef long long LL; typedef pair<LL, LL> pll; const int mod = 1000000007; int prime[(S>>6) + 1] , prm[(S>>1) + 9], plen=0; #define setbit(n) (prime[n>>6] |= (1 << ((n>>1)&31))) #define checkbit(n) (prime[n>>6] & (1 << ((n>>1)&31))) void sieve() {     LL i,j;     for(i=3; i*i<S; i+=2)     {         if(!checkbit(i))         {             for(j=i*i; j<S; j+=(2*i))             {                 setbit(j);             }         }     }     prm[plen++] = 2;     for(i=3; i<S; i+=2)     {         if(!checkbit(i))         {             prm[plen++] = i;         }     }     //for(i=0; i<100; i++) cout << prm[i] << " "; } LL big_mod(LL a, LL b) {     if(!b)     {

Codeforces Helpful Maths

#include<iostream> #include<cstring> #include<string> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> #include<map> #define sf scanf #define pf printf using namespace std; char ch[1100]; int ar[1100]; int main() {     while(~sf("%s" , &ch))     {         int len = strlen(ch) , i , maxi = -1 , tmp , arlen=0 ;         for(i=0; i<len; i++)         {             if(ch[i]>='1' and ch[i]<='4')             {                 tmp = ch[i] - 48;                 ar[arlen++] = tmp;             }         }         sort(ar, ar+arlen);         //for(i=0; i<arlen; i++) cout << ar[i] << " ";         bool f=false;         for(i=0; i<arlen; i++)         {             if(!f)             {                 pf("%d" , ar[i]);                 f=true;             }             else             {                 pf("+%d" , ar[i]);             }         }    

Codeforces Petya and Strings

#include<iostream> #include<cstring> #include<string> #include<cstdio> #include<cmath> #include<vector> #include<map> #define sf scanf #define pf printf using namespace std; char ek[1100] , dui[1100]; int main() {     while(~sf("%s %s" , &ek, &dui))     {         int eklen = strlen(ek) , duilen = strlen(dui) , i;         for(i=0; i<eklen; i++)         {             if(ek[i] >='A' and ek[i]<='Z')             {                 ek[i] = ek[i] + 32;             }         }         for(i=0; i<duilen; i++)         {             if(dui[i]>='A' and dui[i]<='Z')             {                 dui[i] = dui[i] + 32;             }         }         int r = strcmp(ek, dui);         cout << r << '\n';     }     return 0; }

Codeforces B. T-primes

#include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<map> #include<bitset> #define high 1000010 using namespace std; typedef long long LL; typedef vector<LL>vll; bitset<high>bs; LL prm[(high>>1)+9] , plen=0; int len; vll v; void sieve() {     LL i,j;     bs[0] = bs[1] = 0;     bs.set();     for(i=2; i<high; i++)     {         if(bs[i])         {             prm[plen++] = i;             for(j=i*i; j<high; j+=i)             {                 bs[j] = 0;             }         }     }     //for(i=0; i<100; i++) cout << prm[i] << " ";     for(i=0; i<plen; i++)     {         v.push_back(prm[i] * prm[i]);     }     len = v.size();     //for(i=0; i<100; i++) cout << v[i] << " ";     //cout << len; } //void divisor(LL n) //{ //    int i; // //    for(i=2; ; i++) //    { //        if(!(n % i)) //        { //            cout << i << "\n&q

LightOj 1189 - Sum of Factorials

// Accepted #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #define sf scanf #define pf printf using namespace std; typedef long long LL; typedef map<LL, bool> mpbll; LL f[22]; void factorial() {     int i;     f[0] = 1;     f[1] = 1;     for(i=2; i<21; i++)     {         f[i] = f[i-1] * i;     }     //for(i=1; i<21; i++) cout << f[i] << " "; } int Search_Binary(LL itm) {     int lo=1, hi=20, mid;     while(lo <= hi)     {         mid = (lo + hi) / 2;         if(f[mid] == itm)         {             return mid;         }         else if(f[mid] > itm)         {             hi = mid - 1;         }         else if(f[mid] < itm)         {             lo = mid + 1;         }     }     return lo; } int ans[21] , ar[22]; int main() {     factorial();     LL n , tmp;     mpbll mp;     int t , tc=0;     sf("%d", &t);     while(t--)     {         mp.cl