NonWhite

Live Archive 4481

Jul 12th, 2012
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <string>
  4. #include <cstring>
  5. #include <vector>
  6. #include <set>
  7. #include <map>
  8. #include <algorithm>
  9. #define FOR(i,A) for(typeof A.begin() i = A.begin() ; i != A.end() ; i++)
  10. #define all( v ) v.begin() , v.end()
  11. #define rall( v ) v.rbegin() , v.rend()
  12. #define clr( x , y ) memset( x , y , sizeof x )
  13. #define mp make_pair
  14. #define debug(x) cout << #x << " = " << x << endl
  15. #define TAM 1010
  16.  
  17. using namespace std ;
  18.  
  19. typedef pair<int,int> ii ;
  20. typedef pair<int,ii> pii ;
  21. typedef long long ll ;
  22.  
  23. vector<string> split( string s ){
  24.     vector<string> v ;
  25.     string aux = "" ;
  26.     for(int i = 0 ; i < s.size() ; i++){
  27.         char c = s[ i ] ;
  28.         if( c == '/' ){
  29.             v.push_back( aux ) ;
  30.             aux = "" ;
  31.         }else
  32.             aux += c ;
  33.     }
  34.     return v ;
  35. }
  36.  
  37. bool valid( string s ){
  38.     int resp = 0 ;
  39.     for(int i = 0 ; i < s.size() ; i++){
  40.         char c = s[ i ] ;
  41.         switch( c ){
  42.             case 'W': resp += 64 ; break ;
  43.             case 'H': resp += 32 ; break ;
  44.             case 'Q': resp += 16 ; break ;
  45.             case 'E': resp += 8 ; break ;
  46.             case 'S': resp += 4 ; break ;
  47.             case 'T': resp += 2 ; break ;
  48.             case 'X': resp += 1 ; break ;
  49.         }
  50.     }
  51.     return resp == 64;
  52. }
  53.  
  54. int calc( vector<string> v ){
  55.     int resp = 0 ;
  56.     for(int i = 0 ; i < v.size() ; i++){
  57.         if( valid( v[ i ] ) ) resp++ ;
  58.     }
  59.     return resp ;
  60. }
  61.  
  62. int main(){
  63.  
  64.     string s ;
  65.     while( getline( cin , s ) ){
  66.         if( s == "*" ) break ;
  67.         vector<string> v = split( s ) ;
  68.         printf("%d\n" , calc( v ) ) ;
  69.     }
  70.     return 0 ;
  71. }
Add Comment
Please, Sign In to add comment