LightOJ1027-A Dangerous Maze
阿新 • • 發佈:2019-02-14
題意:一個迷宮裡面有N個門。每個門要麼把你傳送出迷宮,要麼把你傳送到原來的位置且你的記憶也會回到初始的時候。現在給出每個門傳送的時間t,若t為正數,說明該門花費時間t可以將你傳送出迷宮,若 t 為負數,說明該門花費時間 t 將你傳送到原來的位置。選擇每個門的概率是相同的,問你出迷宮所花費時間的期望。輸出結果寫出分數形式,且分子分母互質,若不能出迷宮輸出inf。
#include <iostream> #include <cstdio> #include <string> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <set> #include <stack> #include <map> #include <climits> #include <bitset> using namespace std; #define LL long long const int INF=0x3f3f3f3f; int gcd(int a, int b) { if(a>b) swap(a,b); while(b%a) { int k=b%a; b=a; a=k; } return a; } int a[110]; int main() { int t,n; int cas=1; scanf("%d", &t); while(t--) { scanf("%d", &n); int sum = 0; int door = 0; for(int i = 1; i <= n; i++) { scanf("%d", &a[i]); if(a[i] > 0) { sum += a[i]; door++; } else sum-=a[i]; } printf("Case %d: ", cas++); if(door == 0) printf("inf\n"); else printf("%d/%d\n", sum / gcd(sum, door), door/ gcd(sum, door)); } return 0; }