CSES - Datatähti 2023 loppu - Results
Submission details
Task:Pinta-ala
Sender:andreibe
Submission time:2023-01-21 15:01:55 +0200
Language:C++11
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.01 sdetails
#20.01 sdetails
#30.01 sdetails

Code

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> P;
#define REDIR ifstream f("input.txt"); cin.rdbuf(f.rdbuf());
int n,t;
int sums[4];

bool ok(int leveys, int a, int b) {
    int korkeus = a / leveys;
    if (korkeus == 0) return true;
    if ((korkeus+1) * (leveys+1) > b) return true;
    return false;
}
int main() {
    //REDIR;
    cin >> t;
    while (t--) {
        int a,b; cin >> a >> b;

        //-y²+y(b-a-1)-b

        double diskr = (b-a-1)*(b-a-1)-4*(-1)*(double)(-a);
        double ekaLeveys = (-(b-a-1)-sqrt(diskr))/(-2);
        double tokaLeveys = (-(b-a-1)+sqrt(diskr))/(-2);
        //cout << ekaLeveys << " " << tokaLeveys << " " << ekaLeveys * tokaLeveys << " " << (ekaLeveys+1)*(tokaLeveys+1)<< endl;
        if (abs(ekaLeveys * tokaLeveys - a) < 0.00001 && abs((ekaLeveys+1)*(tokaLeveys+1)-b) < 0.00001) {
            cout << "YES\n";
        }
        else cout << "NO\n";
    }
}
/*
(x+1)(y+1)=1337

x*y+x+y+1=1337
x*y=1,   

x=1/y
*/

Test details

Test 1

Verdict:

input
1000
578049 731905
262997 434601
559974 650052
458543 101143
...

correct output
YES
YES
YES
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Test 2

Verdict:

input
1000
10000 9500
10000 9501
10000 9502
10000 9503
...

correct output
NO
NO
NO
NO
NO
...

user output
YES
YES
YES
YES
YES
...

Test 3

Verdict:

input
961
1 1
1 2
1 3
1 4
...

correct output
NO
NO
NO
YES
YES
...

user output
NO
NO
NO
YES
YES
...