hhh

今天心态炸了
第一题贼简单,但g++ 和我有仇 所以只得了25
我的思路:吧id和人名对应,
用一个指针来指位置
利用1和-1来表示朝向内外,左数右数,然后乘了加指针,取模美滋滋

然而
红处g++
g++给我过了编译,然而
我用了4.8.1和8.1.0的g++,
printf和cin,
它就是不执行输入

下面是代码

#include<bits/stdc++.h>
using namespace std;
long long num,asks,pointer;//逆时针指针 
map<long long,string>names;
int torwards[100020];//-1:inside	1:outside
long long steps;
int dir;
char theChar;
int direction;
string name;

void input(){
	scanf("%d%d",&num,&asks);
	pointer=0;
	memset(torwards,-1,sizeof(torwards));
	for(int i=0;i<num;i++){
		name="";
		scanf("%d",&direction);
		torwards[i]+=2*direction;
		while(theChar!='\n'){
			if(theChar>='a'&&theChar<='z')
				name+=theChar;
			scanf("%c",&theChar);
		}
		names[i]=name;
	}
	for(int i=0;i<num;i++){
		scanf("%d%lld",&dir,&steps);
		//cin>>dir>>steps;
		pointer+=(dir*2-1)*steps*torwards[pointer];
		pointer=(pointer%num+num)%num;
	}
}

void solve(){
	cout<<names[pointer];
}

int main(){
#ifdef DEBUG
	freopen("1.txt","r",stdin);
#endif
	input();
	solve();
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值