/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 int main() { ios_base::sync_with_stdio(0); cin.tie(0); int tc,kk=1, n, fact[12]; cin>>n; fact[0]=fact[1]=1; for(int i=2; i<10; i++) fact[i]=fact[i-1]*i; string s; cin>>s; int num=1; vector<int>v; for(int i=0; i<n; i++) { num=(fact[ s[i]-'0' ] ); while(num%7==0) { num/=fact[7]; v.push_back(7); } while(num%5==0) { num/=fact[5]; v.push_back(5); } while(num%3==0) { num/=fact[3]; v.push_back(3); } while(num%2==0) { num/=fact[2]; v.push_back(2); } } sort(v.begin(), v.end()); for(int i=v.size()-1;i>=0;i--) cout<<v[i]; return 0; }
Friday, 20 February 2015
Codeforces Round #292 (Div. 1) Drazil and Factorial
Problem: Drazil and Factorial
Codeforces Round #276 (Div. 1) Kindergarten
Problem: Kindergarten
/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 1000010 long long arr[MX]; int main() { ios_base::sync_with_stdio(0);cin.tie(0); int tc,kk=1, n; long long inc=0, dec=0,tmp=0; cin>>n; for(int i=0;i<n;i++) cin>>arr[i]; for(int i=1;i<n;i++) { if(arr[i]>arr[i-1]) { tmp=inc; inc=max(dec, inc+arr[i]-arr[i-1]); dec=max(tmp, dec); } else { tmp=dec; dec=max(inc, dec+arr[i-1]-arr[i]); inc=max(inc, tmp); } } cout<<max(inc, dec); return 0; }
Codeforces Round #172 (Div. 2) Maximum Xor Secondary
Problem: Maximum Xor Secondary
/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 long long arr[MX]; int main() { ios_base::sync_with_stdio(0);cin.tie(0); int tc,kk=1, n; cin>>n; for(int i=0;i<n;i++) cin>>arr[i]; //forward increasing. stack<long long>fi; fi.push(arr[0]); fi.push(arr[1]); long long mx=arr[0]^arr[1]; for(int i=2;i<n;i++) { while(!fi.empty() && fi.top()<arr[i]) fi.pop(); fi.push(arr[i]); long long last=fi.top(); fi.pop(); if(!fi.empty()) { long long prev=fi.top(); mx=max(mx, prev^last); } fi.push(last); } //backward increasing stack<long long>bi; bi.push(arr[n-1]); bi.push(arr[n-2]); mx=max(mx, arr[n-1]^arr[n-2]); for(int i=n-3;i>=0;i--) { while(!bi.empty() && bi.top()<arr[i]) bi.pop(); bi.push(arr[i]); long long last=bi.top(); bi.pop(); if(!bi.empty()) { long long prev=bi.top(); mx=max(mx, prev^last); } bi.push(last); } cout<<mx; return 0; }
Codeforces Round #277 (Div. 2) Valid Sets
Problem: Valid Sets
/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 vector<int>adj[2005]; long long arr[2005], dp[2005]; int n, d, now; bool vis[2005]; long long func(int u) { vis[u]=1; long long &ret=dp[u]; if(ret!=-1) return ret; ret=1; for(int i=0;i<adj[u].size();i++) { int v=adj[u][i]; if(!vis[v]) if(arr[now]<=arr[v] && arr[now]+d>=arr[v]) if(!(arr[now]==arr[v] && now<v)) ret=(ret*(func(v)+1))%MOD; } return ret; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); int tc,kk=1, x, y; cin>>d>>n; for(int i=1;i<=n;i++) cin>>arr[i]; for(int i=1;i<n;i++) { cin>>x>>y; adj[x].push_back(y); adj[y].push_back(x); } long long ans=0; for(int i=1;i<=n;i++) { CLR(vis); SET(dp); now=i; ans=(ans+func(i))%MOD; } cout<<ans; return 0; }
Monday, 16 February 2015
UVA 12075 Counting Triangles, UVALive 3295, Regionals 2005 >> Asia - Dhaka
/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 long long sameLine[1005][1005]; long long nc3(long long n) { if(n<3) return 0; return (n*(n-1)*(n-2))/6; } void precal() { //distinct for(int i=2;i<1003;i++) for(int j=2;j<1003;j++) sameLine[i][j]=sameLine[i-1][j]+sameLine[i][j-1]-sameLine[i-1][j-1]+__gcd(i, j)-1; //sum-up for(int i=2;i<1003;i++) for(int j=2;j<1003;j++) sameLine[i][j]+=sameLine[i-1][j]+sameLine[i][j-1]-sameLine[i-1][j-1]; return; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); precal(); int kk=1, tc; long long n, m; string s; while(cin>>n>>m && n) { n++; m++; long long ans = nc3(n*m); //row-col ans-=nc3(n)*m; ans-=nc3(m)*n; //diagonal ans-= (sameLine[n-1][m-1]*2); cout<<"Case "<<kk++<<": "<< ans <<"\n"; } return 0; }
Subscribe to:
Posts (Atom)