QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#757509#692. Delete the Pointsosky123456WA 0ms3800kbC++142.7kb2024-11-17 09:05:052024-11-17 09:05:06

Judging History

你现在查看的是最新测评结果

  • [2024-11-17 09:05:06]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3800kb
  • [2024-11-17 09:05:05]
  • 提交

answer

#include <bits/stdc++.h>
using ll = long long ; 
using ull = unsigned long long ; 
using db = double ; 
using namespace std;
#define pii pair<int,int> 
#define all(x) x.begin() , x.end() ; 
const int maxn = 3010 , inf = 1e9 ; 
struct node{
    int X,Y;
    friend bool operator < (node x,node y){
        return x.X<y.X || (x.X==y.X && x.Y<y.Y);
    }
}d[maxn];

int i,j,k,n,m,is[maxn];
vector<pair<pair<double,double>,pair<double,double>>>Ans;
void work(double X1,double Y1,double X2,double Y2){
    Ans.push_back(make_pair(make_pair(X1,Y1),make_pair(X2,Y2)));
}
void solve() {
    Ans.clear();
        cin>>n;
        for(i=1;i<=n;i++)
            cin >> d[i].X  >> d[i].Y ; 
        set<node>S;
        for(i=1;i<=n;i++)S.insert(d[i]);
        while(!S.empty()){
            auto now=*S.begin();S.erase(now);
            auto p=*S.begin();
            while(1){
                if(now.X==p.X){
                    work(now.X-(p.Y-now.Y),now.Y,now.X,p.Y);
                    S.erase(p);
                    break;
                }else
                if(p.Y>now.Y){
                    work(p.X-inf,p.Y-inf,p.X,p.Y);
                    S.erase(p);
                    break;
                }else
                if(S.size()<=1){
                    work(p.X-inf,now.Y-inf,p.X,now.Y);
                    S.erase(p);
                    break;
                }else{
                    S.erase(p);
                    auto tmp=*S.begin();
                    S.erase(tmp);
                    if(tmp.Y>now.Y || tmp.X!=p.X){
                        work(p.X-inf,now.Y-inf,p.X,now.Y);
                        S.insert(tmp);
                    }else
                    if(tmp.Y<now.Y){
                        work(tmp.X-inf,tmp.Y-inf,tmp.X,tmp.Y);
                        S.insert(now);
                    }else
                    if(tmp.Y-p.Y<tmp.X-now.X){
                        work(tmp.X+0.001-(tmp.Y-p.Y),p.Y,tmp.X+0.001,tmp.Y);
                        S.insert(now);
                    }else{
                        work(now.X,tmp.Y+0.001-(tmp.X-now.X),tmp.X,tmp.Y+0.001);
                        S.insert(p);
                    }
                    break;
                }
            }
        }
        cout << "Yes\n" ; 
        for(auto p:Ans){
            cout << fixed << setprecision(4) << p.first.first << ' ' << p.first.second << ' ' << p.second.first << ' ' << p.second.second << '\n' ;
        }
}
signed main() {
    // freopen("stone.in" , "r",stdin) ;
    // freopen("stone.out" , "w",stdout) ; 
    ios::sync_with_stdio(false) ; 
    cin.tie(nullptr) , cout.tie(nullptr) ; 
    int T;cin >> T;
    while(T--) solve() ; 
    return 0 ;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3800kb

input:

4
1 1
2 2
5 5
6 6

output:

Yes
-1000000000.0000 -999999998.0000 0.0000 2.0000
Yes
-999999994.0000 -999999994.0000 6.0000 6.0000
Yes
-999999994.0000 -999999994.0000 6.0000 6.0000
Yes
-999999994.0000 -999999994.0000 6.0000 6.0000

result:

wrong answer We have 0 point(s) in query 0