update
This commit is contained in:
parent
0db4cafb56
commit
1a9419d0b8
@ -3,45 +3,30 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
using ll=int64_t;
|
using ll = int64_t;
|
||||||
using std::cin, std::cout;
|
using std::cin, std::cout;
|
||||||
|
|
||||||
const ll maxn=1e5+5;
|
const ll maxn = 1e5+5;
|
||||||
ll t, n, a[maxn], inf=(1l<<(sizeof(inf)*8-5)), ninf=-inf;
|
ll t, n, a[maxn], ans, inf=(1l<<(sizeof(inf)*8-4));
|
||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
std::iostream::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
|
std::iostream::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
|
||||||
|
|
||||||
cin>>t;
|
cin>>t;
|
||||||
while(t--){
|
while(t--){
|
||||||
std::multiset<ll> rset, lset;
|
ans = -inf;
|
||||||
cin>>n;
|
cin>>n;
|
||||||
|
std::multiset<ll> lset, rset;
|
||||||
for(ll i{1};i<=n;i++){
|
for(ll i{1};i<=n;i++){
|
||||||
cin>>a[i];
|
cin>>a[i];
|
||||||
rset.emplace(a[i]);
|
rset.emplace(a[i]);
|
||||||
}
|
}
|
||||||
rset.erase(rset.find(a[1]));
|
rset.erase(rset.find(a[1]));
|
||||||
lset.emplace(a[1]);
|
lset.emplace(a[1]);
|
||||||
ll ans{ninf};
|
for(ll i{2};i<n;i++){
|
||||||
for(ll j{2};j<n;j++){
|
|
||||||
rset.erase(rset.find(a[j]));
|
|
||||||
auto lit {lset.lower_bound(a[j])};
|
|
||||||
decltype(rset.end()) rit;
|
|
||||||
if(lit==lset.end())lit--;
|
|
||||||
while(*lit>=a[j]){
|
|
||||||
if(lit==lset.begin())goto end;
|
|
||||||
--lit;
|
|
||||||
}
|
|
||||||
if(lit==lset.end() || (*lit)>=a[j])goto end;
|
|
||||||
rit = rset.end();
|
|
||||||
--rit;
|
|
||||||
if(*rit<=a[j])goto end;
|
|
||||||
ans=std::max(ans, (*lit) * a[j] * (*rit));
|
|
||||||
|
|
||||||
end:;
|
lset.emplace(a[i]);
|
||||||
lset.emplace(a[j]);
|
|
||||||
}
|
}
|
||||||
cout<<(ans==ninf?-1:ans)<<'\n';
|
cout<<(ans==-inf?-1:ans)<<'\n';
|
||||||
// cout<<ans<<'\n';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
18
src/20241118/T541155_in.cpp
Normal file
18
src/20241118/T541155_in.cpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include <cstdint>
|
||||||
|
#include <iostream>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
|
using ll = int64_t;
|
||||||
|
using std::cin, std::cout;
|
||||||
|
|
||||||
|
const ll inf = (1l<<32);
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
std::random_device rd;
|
||||||
|
std::mt19937_64 mt{rd()};
|
||||||
|
std::uniform_int_distribution<ll> uid{-inf, inf};
|
||||||
|
ll t {100};
|
||||||
|
while (t--) {
|
||||||
|
cout<<uid(mt)<<'\n';
|
||||||
|
}
|
||||||
|
}
|
28
src/20241118/T541155_pai.cpp
Normal file
28
src/20241118/T541155_pai.cpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#include <algorithm>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using ll = int64_t;
|
||||||
|
using std::cin, std::cout;
|
||||||
|
|
||||||
|
const ll maxn = 1e5+5;
|
||||||
|
ll t, n, a[maxn], ans, inf=(1l<<(sizeof(inf)*8-4));
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
std::iostream::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
|
||||||
|
|
||||||
|
cin>>t;
|
||||||
|
while(t--){
|
||||||
|
ans = -inf;
|
||||||
|
cin>>n;
|
||||||
|
for(ll i{1};i<=n;i++)cin>>a[i];
|
||||||
|
for(ll i{1};i<n-1;i++)
|
||||||
|
for(ll j{i+1};j<n;j++)
|
||||||
|
for(ll k{j+1};k<=n;k++){
|
||||||
|
if(a[i]<a[j] && a[j]<a[k]){
|
||||||
|
ans=std::max(ans, a[i]*a[j]*a[k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout<<(ans==-inf?-1:ans)<<'\n';
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user