站外题求助
  • 板块学术版
  • 楼主Terminator_SHH
  • 当前回复7
  • 已保存回复7
  • 发布时间2022/8/9 12:22
  • 上次更新2023/10/27 16:19:07
查看原帖
站外题求助
560318
Terminator_SHH楼主2022/8/9 12:22

JSOI 2022071203 sumsets
悬赏关注
map&&multimap 22,22

#include <bits/stdc++.h>
//#pragma GCC optimize(1,2)
typedef long long ll;
using namespace std;
namespace IO{
	template<typename T>inline void write(T x){
		if(x<0){putchar('-'),x=-x;}
	    if(x==0){putchar('0');return ;}
	    if(x>9)write(x/10);
	    putchar(x%10+'0');
		return ;}
	template<typename T>inline void read(T &x){
	    x=0;T w=1;char ch=getchar();
	    while (!isdigit(ch)) {if(ch=='-') w=-1;ch=getchar(); }
	    while (isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
	    x=(w==1?x:(~x+1));}
	template<typename T>inline signed abs(T &x){return x^(x>>31)-(x>>31);}
	template<typename T>inline void Swap(T &a,T &b){a=a^b;b=a^b;a=a^b;}
	template<typename T>inline int operator%(const T& a,const T& b){return a&b-1;}
	inline void fin(string s){freopen(s.data(),"r",stdin);}
	inline void fout(string s){freopen(s.data(),"w",stdout);}
	inline void ftxt(string s){freopen(s.data(),"r",stdin);}
	#define writeln(x) write(x),putchar(10)
	#define writesp(x) write(x),putchar(' ')
	#define For(i,j,k) for(int i=(j);i<=(k);++i)
}using namespace IO;

int N;

void solve(int N)
{
    int ans=-0x7f7f7f7;
    int a[1001];
    vector<int>ma;
    multimap<int,int>mb;
    For(i,1,N) read(a[i]);
    For(i,1,N)
    {
        For(j,i+1,N)
        {
        	ma.push_back(a[i]+a[j]);
			mb.insert(make_pair(a[j]-a[i],j));
        }
    }
    For(i,0,ma.size()-1)
    {
        multimap<int,int>::iterator p=mb.find(ma[i]);
        if(p!=mb.end())ans=max(ans,a[p->second]);
        //cout<<p->first<<' '<<p->second<<' '<<ans<<endl; 
    }
    if(ans==-0x7f7f7f7)puts("No Solution");
    else writeln(ans);
}

signed main()
{
	//freopen("20220703.txt","r",stdin);
    while(scanf("%d",&N)&&N!=0)
    {
    	solve(N);
	}
        
	return 0; 
}
2022/8/9 12:22
加载中...