1 条题解
-
0
C++ :
#include<iostream> #include<cstdlib> #include<cstdio> using namespace std; int m,n; int a[1005],b[1005],step=0,f=0,j=1; bool find(int k,int hh) { for(int i=1;i<=hh;++i) if(b[i]==k) return true; return false; } int main() { //freopen("translate.in","r",stdin); //freopen("translate.ans","w",stdout); cin>>m>>n; for(int i=1;i<=n;++i) cin>>a[i]; b[j]=a[1]; ++step; ++f; for(int i=2;i<=n;++i) { if(!find(a[i],f)) { ++step; f++;//内存 j++; if(f>m) { for(int o=1;o<=m-1;++o) b[o]=b[o+1]; b[m]=a[i]; --j; --f; continue; } b[j]=a[i]; } } cout<<step; //system("pause"); return 0; }
Pascal :
program t6; var ans,j,tip,m,n,i:longint; zd,a:array[0..10000] of longint; function find(p:longint):boolean; var i:longint; begin for i:=1 to n do if zd[i]=p then exit(true); exit(false); end; procedure work; var i:longint; begin for i:=1 to n+1 do if zd[i]=-1 then begin tip:=i; exit; end; end; begin readln(m,n); for i:=1 to m+1 do zd[i]:=-1; for i:=1 to n do begin read(a[i]); if not find(a[i]) then begin work; if tip<=m then zd[tip]:=a[i] else begin for j:=1 to n-1 do zd[j]:=zd[j+1]; zd[n]:=a[i]; end; inc(ans); end; end; writeln(ans); end.
- 1
信息
- ID
- 1803
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者