Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define ffr(i,a,b) for(i=a;i<b;i++)
- #define ffre(i,a,b) for(i=a;i<=b;i++)
- #define ll long long int
- #define mm(a,b) memset(a,b,sizeof(a))
- #define pf printf
- #define sf(a) scanf("%d", &a)
- #define MOD (100000007)
- #define input(a) freopen(a, "r", stdin)
- using namespace std;
- ll ARR[1002][100];
- int n, k, s;
- ll call(int taken, int pos)
- {
- if(taken>=s && pos==n) return 1;
- if(taken<s && pos==n) return 0;
- if(ARR[taken][pos]!=-1) return ARR[taken][pos];
- ll ans=0;
- int i;
- for(i=1;i<=6;i++)
- {
- ans+=call(taken+i,pos+1);
- }
- //pf("taken %d pos %d ans %lld\n", taken, pos, ans);
- return ARR[taken][pos]=ans;
- }
- int main()
- {
- int cc=1, t=0;
- sf(t);
- int i;
- while(t--)
- {
- mm(ARR,-1);
- sf(n); sf(s);
- ll p=call(0,0), q=1;
- ffr(i,0,n) q*=6;
- ll gc=__gcd(p,q);
- p/=gc; q/=gc;
- if(q==1) pf("Case %d: %lld\n", cc++, p);
- else pf("Case %d: %lld/%lld\n", cc++, p, q);
- }
- return 0;
- }
- /*
- 5
- 1 6 3
- 2 9 8
- 500 6 1000
- 2 100 10
- 800 800 10000
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement