题目大意:今天面临一个问题,要把袜子放在衣橱里。 他有一堆不同的袜子,最初在一个袋子里。 从1到n编号。 Andryusha想把配对的袜子放在一起,放在衣橱里。 他从包里一个一个地拿起袜子,每个袜子,他看看这双袜子的另一只是否已经从包里拿出来了。 如果没有(这意味着这双袜子还在袋子里),他把现在的袜子放在他面前的桌子上。 否则,他把两双袜子都放在衣柜里。
解题代码:
#include<iostream>
#include<map>
using namespace std;
int n,x;
map<int,int>mark;
int ans;
int maxn=0; //maxn是桌子上同时放的袜子的最大值
int main()
{
while(cin>>n)
{
ans=0;
for(int i=1; i<=2*n; i++)
{
cin>>x;
mark[x]++;
if(mark[x]==0)
{
ans++;
}
else if(mark[x]==1)
{
ans++;
}
else if(mark[x]==2)
{
ans--;
}
if(maxn<ans)
maxn=ans;
}
cout<<maxn<<endl;
}
return 0;
}
~step by step