/// 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; }
Monday, 16 February 2015
UVA 12075 Counting Triangles, UVALive 3295, Regionals 2005 >> Asia - Dhaka
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment