stl的应用
渣了,这个都不会弄。。。
http://blog.csdn.net/dongdongzhang_/article/details/9954329
#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <cstring>
#include <algorithm>
#include <string>
#include <set>
#include <functional>
#include <numeric>
#include <sstream>
#include <stack>
#include <map>
#include <queue>
using namespace std;
int num[66000][100];
int main()
{
int n,m;
int q;
int i,j,k;
while(cin>>n>>m)
{
multiset<int> s[100];
for( i=1;i<=n;i++)
{
scanf("%d",&q);
if(q==0)
{
int a[10];
for(j=1;j<=m;j++)
scanf("%d",&a[j]);
for(j=0;j<(1<<m);j++)
{
int sum=0;
for(k=1;k<=m;k++)
{
if((1<<(k-1))&j)
sum+=a[k];
else
sum-=a[k];
}
num[i][j]=sum;
s[j].insert(sum);
}
}
else
{
int x;
scanf("%d",&x);
for(j=0;j<(1<<m);j++)
s[j].erase(s[j].find(num[x][j]));//注意删的是地址
}
int ans=0;
for( j=0;j<(1<<m);j++)
{
multiset<int>::iterator it1=s[j].begin();
multiset<int>::iterator it2=s[j].end();
it2--;
ans=max(*it2-*it1,ans);
}
printf("%d\n",ans);
}
}
return 0;
}