Water problem, direct sticker code.
POJ 2041//sep9#include <iostream>using namespace Std;char mode[128];char ori[128],res[128];int len;void J () { ori[0]=res[len-1];for (int i=1;i<len;++i) ori[i]=res[i-1];} void C () {ori[len-1]=res[0];for (int i=0;i<len-1;++i) ori[i]=res[i+1];} void E () {int i;for (i=0;i<len/2;++i) ori[i]=res[i+ (len+1)/2];if (len%2==1) ori[len/2]=res[len/2];for (i= (len+1)/2; I<len;++i) ori[i]=res[i-(len+1)/2];} void A () {for (int i=0;i<len;++i) ori[i]=res[len-1-i];} void P () {for (int i=0;i<len;++i) if (res[i]<= ' 9 ' &&res[i]>= ' 0 ') ori[i]=res[i]== ' 0 '? ' 9 ': Res[i]-1;else ori[i]=res[i];} void M () {for (int i=0;i<len;++i) if (res[i]<= ' 9 ' &&res[i]>= ' 0 ') ori[i]=res[i]== ' 9 '? ' 0 ': Res[i]+1;else ori[i]=res[i];} int main () {int i,n;scanf ("%d", &n), while (n--) {scanf ("%s%s", Mode,res), Len=strlen (res); ori[len]= ' + '; for (i= strlen (mode) -1;i>=0;--i) {if (mode[i]== ' J ') j (); else if (mode[i]== ' C ') c (); else if (mode[i]== ' E ') E (); else if (Mode[i] = = ' A ') a (), else if (mode[i]== ' P ') p (), else if (mode[i]== ' m ') m (); strcpy (res,ORI);} printf ("%s\n", res);} return 0;}
POJ 2041 unreliable Message string processing