| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -7,12 +7,11 @@ using namespace std; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					vector<array<unsigned, 2>> parse() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    vector<array<unsigned, 2>> input; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    string line; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    while (getline(cin, line)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (line.size() < 3 || line[1] != ' ') abort(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (string line; getline(cin, line);) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (line.size() < 3 || line[1] != ' ') throw "parse"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        unsigned oppo = line[0] - 'A'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        unsigned user = line[2] - 'X'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (oppo >= 3 || user >= 3) abort(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (oppo >= 3 || user >= 3) throw "parse"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        input.push_back({oppo, user}); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    return input; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -21,7 +20,7 @@ vector<array<unsigned, 2>> parse() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned p1(vector<array<unsigned, 2>> &input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    unsigned score = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (array<unsigned, 2> i : input) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (auto i : input) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        unsigned shape = i[1]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        unsigned outcome = (i[1] - i[0] + 4) % 3; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        score += shape + 1 + outcome * 3; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -32,7 +31,7 @@ unsigned p1(vector<array<unsigned, 2>> &input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					unsigned p2(vector<array<unsigned, 2>> &input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    unsigned score = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (array<unsigned, 2> i : input) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (auto i : input) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        unsigned shape = (i[1] + i[0] + 2) % 3; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        unsigned outcome = i[1]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        score += shape + 1 + outcome * 3; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |