出现未知错误了。。。个人认为原因是在devc++上运行时会输出乱数的原因,洛谷上至少大部分都是能过的,但是不知道怎么解决...



#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
long long n,s,m,ans=0;
vector<long long>D;
class Area{
public:
long long t;
queue<long long>p;
};
Area A[1002];
void MYCAL()
{
if(ans==0){
if(!A[s-1].p.empty())
ans+=A[s-1].p.front();
A[s-1].p.pop();
}
long long loc=s-1;
for(long long i=0;i<m;i++){
if(D[i]==1){
if(loc==n-1){
loc=0;
}else loc++;
}else if(D[i]==2){
if(loc==0){
loc=n-1;
}else loc--;
}
if(!A[loc].p.empty()){
ans+=A[loc].p.front();
A[loc].p.pop();
}
}
}
int main()
{
scanf("%lld %lld %lld",&n,&s,&m);
D.resize(m,0);
for(long long i=0;i<m;i++) scanf("%lld",&D[i]);
for(long long i=0;i<n;i++){
scanf("%lld",&A[i].t);
for(long long j=0;j<A[i].t;j++){
long long temp=0;
scanf("%lld",&temp);
A[i].p.push(temp);
}
}
MYCAL();
printf("%lld",ans);
return 0;
}




#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
long long n,s,m,ans=0;
vector<long long>D;
class Area{
public:
long long t;
queue<long long>p;
};
Area A[1002];
void MYCAL()
{
if(ans==0){
if(!A[s-1].p.empty())
ans+=A[s-1].p.front();
A[s-1].p.pop();
}
long long loc=s-1;
for(long long i=0;i<m;i++){
if(D[i]==1){
if(loc==n-1){
loc=0;
}else loc++;
}else if(D[i]==2){
if(loc==0){
loc=n-1;
}else loc--;
}
if(!A[loc].p.empty()){
ans+=A[loc].p.front();
A[loc].p.pop();
}
}
}
int main()
{
scanf("%lld %lld %lld",&n,&s,&m);
D.resize(m,0);
for(long long i=0;i<m;i++) scanf("%lld",&D[i]);
for(long long i=0;i<n;i++){
scanf("%lld",&A[i].t);
for(long long j=0;j<A[i].t;j++){
long long temp=0;
scanf("%lld",&temp);
A[i].p.push(temp);
}
}
MYCAL();
printf("%lld",ans);
return 0;
}

