Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include<string>
- using namespace std;
- void swap(int *xp, int *yp)
- {
- int temp = *xp;
- *xp = *yp;
- *yp = temp;
- }
- void swaps(string *xp, string *yp)
- {
- string temp = *xp;
- *xp = *yp;
- *yp = temp;
- }
- void bubbleSort(int arr[],string x[], int n)
- {
- int i, j;
- bool swapped;
- for (i = 0; i < n-1; i++)
- {
- swapped = false;
- for (j = 0; j < n-i-1; j++)
- {
- if (arr[j] > arr[j+1])
- {
- swap(&arr[j], &arr[j+1]);
- swaps(&x[j], &x[j+1]);
- swapped = true;
- }
- }
- if (swapped == false)
- break;
- }
- }
- int main()
- {
- string x[3003];
- int arr[1002];
- int n,o ;
- cin >> n;
- for(int i=0;i<n;i++)
- {
- cin >> arr[i]>>x[i];
- }
- o=0;
- bubbleSort(arr, x, n);
- for (int i=0;i<n-1;i++){
- for (int j=i+1;j<n;j++){
- for(int k=j+1;k<n;k++){
- string z="";
- z=x[i];
- if(z.find("A")<6 and z.find("B")<6 and z.find("C")<6){
- o=arr[i];
- break;
- }
- z=x[j];
- if(z.find("A")<6 and z.find("B")<6 and z.find("C")<6){
- o=arr[j];
- break;
- }
- z=x[k];
- if(z.find("A")<6 and z.find("B")<6 and z.find("C")<6){
- o=arr[k];
- break;
- }
- z=x[k]+x[j];
- if(z.find("A")<6 and z.find("B")<6 and z.find("C")<6){
- o=arr[j]+arr[k];
- break;
- }
- z=x[i]+x[j];
- if(z.find("A")<6 and z.find("B")<6 and z.find("C")<6){
- o=arr[i]+arr[j];
- break;
- }
- z=x[i]+x[j]+x[k];
- if(z.find("A")<6 and z.find("B")<6 and z.find("C")<6){
- o=arr[i]+arr[j]+arr[k];
- break;
- }
- }
- if(o>0){
- break;
- }
- }
- if(o>0){
- break;
- }
- }
- if (o>0){
- cout << o <<endl;
- }else {
- cout <<"-1"<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement