Advertisement
juanjo12x

UVA_10903_Rock_Paper_Scissor_Tournament

Aug 14th, 2014
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <string>
  6. #include <cctype>
  7. #include <stack>
  8. #include <queue>
  9. #include <list>
  10. #include <vector>
  11. #include <map>
  12. #include <set>
  13. #include <sstream>
  14. #include <stdlib.h>
  15. #include <cmath>
  16. #define FOR(i,A) for(typeof (A).begin() i = (A).begin() ; i != (A).end() ; i++)
  17. #define debug( x ) cout << #x << " = " << x << endl
  18. #define clr(v,x) memset( v, x , sizeof v )
  19. #define all(x) (x).begin() , (x).end()
  20. #define rall(x) (x).rbegin() , (x).rend()
  21. #define TAM 110
  22.  
  23. using namespace std;
  24.  
  25. typedef pair<int,int> ii ;
  26. typedef long long ll ;
  27. typedef long double ld ;
  28. typedef pair<int,ii> pii ;
  29. int n,k; map<int,ii> mp;
  30.  
  31. char cd1[10];char cd2[10];
  32. void victoria(int p1,int p2){
  33.    if((cd1[0]=='r' && cd2[0]=='s') || (cd1[0]=='s' && cd2[0]=='p') || (cd1[0]=='p' && cd2[0]=='r')){
  34.     if (mp.count(p1)!=0){
  35.         (mp[p1].first)++;(mp[p1].second)++;
  36.     } else{
  37.         mp[p1].first=1;
  38.         mp[p1].second=1;
  39.        
  40.      }
  41.       if (mp.count(p2)!=0){
  42.          (mp[p2].second)++;
  43.         }else{
  44.         mp[p2].second=1;mp[p2].first=0;
  45.        }
  46.      
  47.     }else if((cd2[0]=='r' && cd1[0]=='s') || (cd2[0]=='s' && cd1[0]=='p') || (cd2[0]=='p' && cd1[0]=='r')){
  48.         if (mp.count(p2)!=0){
  49.         (mp[p2].first)++;(mp[p2].second)++;
  50.         }else{
  51.         mp[p2].first=1;
  52.         mp[p2].second=1;
  53.        
  54.         }
  55.         if (mp.count(p1)!=0){
  56.          (mp[p1].second)++;
  57.        } else{
  58.         mp[p1].second=1;mp[p1].first=0;
  59.        
  60.       }
  61.     }else{/*empate*/
  62.       return;
  63.        
  64.     }
  65. }
  66.  
  67.  
  68. int main() {
  69.     int p1,p2;
  70.     int cont=1;
  71.     while(scanf("%d",&n)){
  72.         if(n==0) break;
  73.         if(cont>1) printf("\n");
  74.         scanf("%d",&k);
  75.         int aux=((k)*(n-1)*(n))/2;
  76.         for(int i=0;i<aux;i++){
  77.             scanf("%d %s %d %s",&p1,&cd1,&p2,&cd2);
  78.             victoria(p1,p2);
  79.         }
  80.        map<int,ii> ::iterator it;
  81.        for(int i=1;i<=n;i++){
  82.          if(mp.count(i)!=0){
  83.             double aux=(double)(mp[i].first)/(double)(mp[i].second);
  84.             printf("%.3lf\n",aux);
  85.          }else{
  86.             printf("-\n");
  87.          }
  88.        }
  89.        mp.clear();cont++;
  90.        
  91.     }
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement