Thursday, November 10, 2016

UVa 12712 Pattern Locker

UVa 12712 Pattern Locker



#include <cstdio>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

#define MOD 10000000000007

typedef long long lint;

int main() {

lint test, l, m, n, kase=1;

cin >> test;

while (test--) {

cin >> l >> m >> n;
lint init = 1;
for (lint i = l*l ; i>(l*l-m) ; i--) {
init = ((init * i)%MOD);
}
lint sum = init;
for (lint i = (l*l-m) ; i>(l*l-n) ; i--) {
init = ((init * i)%MOD);
sum = ((sum + init)%MOD);
}

cout << "Case " << kase++ << ": " << sum << endl;


}


return 0;
}



Go to link download