I am getting runtime error (SIGSEGV)on spoj whereas my code runs absolutely fine on ideone.Here is the link to the problem-http://www.spoj.com/problems/WSCIPHER/
Here is my code in C++
#include<bits/stdc++.h>
using namespace std;
int i;
string rotate(string s,int k,int n,int A[])
{
char temp[n];int c=0;
for(i=n-k;i<n;i++)
{
temp[c]=s[A[i]];
c++;
}
for(i=n-k-1;i>=0;i--)
s[A[i+k]]=s[A[i]];
for(i=0;i<c;i++)
s[A[i]]=temp[i];
return s;
}
int main()
{
int p,k1,k2,k3;
for(p=0;;p++)
{
scanf("%d%d%d",&k1,&k2,&k3);
string s;
if(k1==0&&k2==0&&k3==0)
break;
cin >> s;
int n=s.length();
int A1[n];
int A2[n];
int A3[n];
int c1=0,c2=0,c3=0;
for(i=0;i<s.length();i++)
{
if((int)s[i]>=97 && (int)s[i] <=105)
{
A1[c1]=i;
c1++;
}
if((int)s[i]>=106 && (int)s[i] <=114)
{
A2[c2]=i;
c2++;
}
if((int)s[i]>114 ||(int)s[i]==95)
{
A3[c3]=i;
c3++;
}
}
string r=rotate(s,k1,c1,A1);
r=rotate(r,k2,c2,A2);
r=rotate(r,k3,c3,A3);
cout << r << endl;
}
return 0;
}
Thanks in advance