POJ 1107

水题一道,注意取模时不能为0

#include <iostream>
#include <algorithm>
#include <cstring>
#include <string.h>
#include <cstdio>

using namespace std;
char s[150];
char ans1[150],ans2[150],ans3[150];
int mark[150];
int p1,p2,p3;
int main(){
	int k1,k2,k3;
	while(scanf("%d%d%d",&k1,&k2,&k3),k1||k2||k3){
		int b1,b2,b3;
		b1=b2=b3=0;
		p1=p2=p3=0;
		scanf("%s",s);
		for(int i=0;s[i]!=‘\0‘;i++){
			if(s[i]>=‘a‘&&s[i]<=‘i‘){
				mark[i]=1;
				ans1[p1++]=s[i];
			}
			else if(s[i]>=‘j‘&&s[i]<=‘r‘){
				mark[i]=2;
				ans2[p2++]=s[i];
			}
			else{
				mark[i]=3;
				ans3[p3++]=s[i];
			}
		}
		if(p1!=0)
		b1=((0-k1)%p1+p1)%p1;
		if(p2!=0)
		b2=((0-k2)%p2+p2)%p2;
		if(p3!=0)
		b3=((0-k3)%p3+p3)%p3;
		for(int i=0;s[i]!=‘\0‘;i++){
			if(mark[i]==1){
				printf("%c",ans1[b1]);
				b1=(b1+1);
				if(p1!=0)
				b1%=p1;
			}
			else if(mark[i]==2){
				printf("%c",ans2[b2]);
				b2=(b2+1);
				if(p2!=0)
				b2%=p2;
			}
			else{
				printf("%c",ans3[b3]);
				b3=(b3+1);
				if(p3!=0)
				b3%=p3;
			}
		}
		printf("\n");
	}
	return 0;
}

  

时间: 2024-12-26 08:43:40

POJ 1107的相关文章

POJ 1107:W&#39;s Cipher(模拟)

题面描述了一种加密的方式,让coder按照要求解密~ 将字母分成三段,再将位置用数组储存~所谓的旋转其实就是右移~ #include"cstdio" #include"iostream" #include"cstring" using namespace std; int main() { int k1,k2,k3; while(scanf("%d%d%d",&k1,&k2,&k3)&&

POJ 3449 Geometric Shapes --计算几何,线段相交

题意: 给一些多边形或线段,输出与每一个多边形或线段的有哪一些多边形或线段. 解法: 想法不难,直接暴力将所有的图形处理成线段,然后暴力枚举,相交就加入其vector就行了.主要是代码有点麻烦,一步一步来吧. 还有收集了一个线段旋转的函数. Vector Rotate(Point P,Vector A,double rad){ //以P为基准点把向量A旋转rad return Vector(P.x+A.x*cos(rad)-A.y*sin(rad),P.y+A.x*sin(rad)+A.y*co

POJ题目推荐(转载)

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

Physics Experiment poj 3684 弹性碰撞

Language: Default Physics Experiment Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1107   Accepted: 380   Special Judge Description Simon is doing a physics experiment with N identical balls with the same radius of R centimeters. Befor

51NOD——N 1107 斜率小于0的连线数量

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4,6),其中(1,5)同(2,3)(3,4)的连线斜率 < 0,因

51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)

1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4,6),其中(1,5)同(2,3)(3,4)的连线斜率 < 0,因此斜率小于0的连线数量为2. Input 第1行:1个数N,N为点的数量(0 <= N <= 50000) 第2