| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
p3176 那位大侠的程序给我看看,或看看我的 // 帮我把我的该进一下,我的是tl,我是菜鸟,请帮帮我.
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
void print(deque<int> c)
{
deque<int>::const_iterator cp;
for(cp=c.begin();cp!=c.end();cp++)
cout<<*cp<<" ";
cout<<endl;
return;
}
int main(void)
{
int N,K,S;
int i;
while(cin>>N>>K>>S)
{
deque <int> first(N);
deque <int> second(K);
for(i=0;i<N;i++)
cin>>first[i];
for(i=0;i<K;i++)
cin>>second[i];
deque<int> copy(K),copy1(K);
deque<int> index(K),index1(K);
deque<int> result_index(N-K,0);
int no=0;
deque<int>::const_iterator head,rear,itr;
head=first.begin();
rear=head+K;
for(i=0;i<N-K+1;i++,head++,rear++)
{
copy.assign(head,rear);
copy1.assign(head,rear);
sort(copy.begin(),copy.end());
int j=1,m;
int pre=copy[0];
index[0]=j;
for(m=1;m<K;m++)
{
if(copy[m]!=pre)
{
j++;
pre=copy[m];
}
index[m]=j;
}
for(j=0;j<K;j++)
{
itr=find(copy.begin(),copy.end(),copy1[j]);
index1[j]=index[itr-copy.begin()];
}
if(index1==second)
{
result_index[no]=i+1;
no++;
}
}
cout<<no<<endl;
for(i=0;i<no;i++)
cout<<result_index[i]<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator