Submission #1702708


Source Code Expand

#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <set>
#include <queue>
#include <limits>
#include <deque>
#include <locale>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <wchar.h>
#include <wctype.h>
#include <algorithm>
#include <bitset>
#include <map>
#include <iomanip>
#include <ios>
#include <iostream>
#include <vector>
#include <cwchar>
#include <cwctype>
#define mp make_pair
#define fs first
#define se second
#define memset(a,t) memset(a,t,sizeof(a))
#define all(v) v.begin(),v.end()
#define eprintf(...) fprintf(stderr, __VA_ARGS__),fflush(stderr)
#define MN 0LL
#define Mx 2000000005
#define Mn -Mx
#define MX 20000000000000005
using namespace std;
int readint(){
	char c;
	while(c=getchar(),(c<'0'||c>'9')&&c!='-');
	bool flag=(c=='-');
	if(flag)c=getchar();
	int x=0;
	while(c>='0'&&c<='9'){
		x=x*10+c-48;
		c=getchar();
	}
	return flag?-x:x;
}
inline string tos(int x){
	string s;
	while(x) s=(char)(x%10+'0')+s,x/=10;
	return s;
}
inline int pt(int a[],int l,int r){
	int p,i,j;
	p=a[l];
	i=l;
	j=r+1;
	for(;;){
		while(a[++i]<p) if(i>=r) break;
		while(a[--j]>p) if(j<=l) break;
		if(i>=j) break;
		else swap(a[i],a[j]);
	}
	if(j==l) return j;
	swap(a[l],a[j]);
	return j;
}
inline void q_sort(int a[],int l,int r){
	int q;
	if(r>l){
		q=pt(a,l,r);
		q_sort(a,l,q-1);
		q_sort(a,q+1,r);
	}
}
int main(){
	string s,t,v;
	vector<int> number;
	int i,j,n;
	cin>>s;
	t=s;
	reverse(t.begin(),t.end());
	if(t==s){
		cout<<0<<endl;
		return 0;
	}
	t="";
	for(i=0;i<s.size();i++) if(s[i]!='x') t+=s[i],number.push_back(i);
	v=t;
	reverse(v.begin(),v.end());
	if(v!=t){
		cout<<-1<<endl;
		return 0;
	}
	n=t.size();
	if(n%2==1){
		long long tt=number[n/2],ans=0;
		string a,b;
		a=s.substr(0,tt);
		b=s.substr(tt+1);
		reverse(b.begin(),b.end());
		for(int i=0;;i++){
			if(i>=a.size()||i>=b.size()) break;
			if(a[i]!=b[i]){
				ans++;
				if(a[i]=='x'){
					b.insert(i,"x");
				}else{
					a.insert(i,"x");
				}
			}
		}
		if(a.size()!=b.size()) ans+=abs((int)(a.size())-(int)(b.size()));
		cout<<ans<<endl;
		return 0;
		return 0;
	}else{
		long long tt1=number[n/2],tt2=number[n/2-1],ans=0;
		string a,b;
		a=s.substr(0,tt2);
		b=s.substr(tt1+1);
		reverse(b.begin(),b.end());
		for(int i=0;;i++){
			if(i>=a.size()||i>=b.size()) break;
			if(a[i]!=b[i]){
				ans++;
				if(a[i]=='x'){
					b.insert(i,"x");
				}else{
					a.insert(i,"x");
				}
			}
		}
		if(a.size()!=b.size()) ans+=abs((int)(a.size())-(int)(b.size()));
		cout<<ans<<endl;
		return 0;
		return 0;
	}
}

Submission Info

Submission Time
Task C - Two Alpinists
User paulzrm
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2782 Byte
Status WA
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 1
WA × 3
AC × 4
WA × 17
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt
Case Name Status Exec Time Memory
0_000.txt WA 1 ms 256 KB
0_001.txt AC 1 ms 256 KB
0_002.txt WA 1 ms 256 KB
0_003.txt WA 1 ms 256 KB
1_004.txt AC 1 ms 256 KB
1_005.txt AC 1 ms 256 KB
1_006.txt AC 1 ms 256 KB
1_007.txt WA 1 ms 256 KB
1_008.txt WA 1 ms 256 KB
1_009.txt WA 1 ms 256 KB
1_010.txt WA 1 ms 256 KB
1_011.txt WA 1 ms 256 KB
1_012.txt WA 1 ms 256 KB
1_013.txt WA 1 ms 256 KB
1_014.txt WA 1 ms 256 KB
1_015.txt WA 1 ms 256 KB
1_016.txt WA 1 ms 256 KB
1_017.txt WA 1 ms 256 KB
1_018.txt WA 1 ms 256 KB
1_019.txt WA 1 ms 256 KB
1_020.txt WA 1 ms 256 KB