hdu 5742(水)

来源:互联网 发布:合肥飞友网络怎么样 编辑:程序博客网 时间:2024/05/18 07:21
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <queue>#include <map>#include <set>#include <algorithm>#include <ctime>#include <functional>#pragma comment(linker,"/STACK:102400000,102400000")using namespace std;#define eps 1e-10#define N 120#define B 234#define M 200030#define mod 1000000007#define inf 0x3f3f3f3f#define LL long long#define pii pair<int, int>#define MP make_pair#define fi first#define se second#define md (ll + rr >> 1)int n, a[N];int m;int gcd(int a, int b) {    while(a && b && (a >= b? a %= b: b %= a));    return a + b;}int main() {    int cas;    scanf("%d", &cas);    while(cas--) {        scanf("%d%d", &n, &m);        memset(a, -1, sizeof a);        for(int i = 1; i <= m; ++i) {            int u, v;            scanf("%d%d", &u, &v);            a[u] = v;        }        int sum = 0, pre = 100;        if(a[1] == -1) {            sum += 100;            a[1] = 100;        }        else sum += a[1], pre = a[1];        if(a[2] == -1) {            sum += pre;            a[2] = pre;        }        else sum += a[2];        if(sum == 0) puts("0/1");        else {            int tot = sum;            int mi = 0;            for(int i = n; i >= 3; --i) {                if(a[i] == -1) a[i] = mi;                else mi = a[i];                tot += a[i];            }            int g = gcd(tot, sum);            tot /= g;            sum /= g;            printf("%d/%d\n", sum, tot);        }    }    return 0;}
0 0