No.8021 データベースの練習
レベル : / 実行時間制限 : 1ケース 5.000秒 / メモリ制限
: 512 MB / リアクティブ問題 (詳しくはこちら)
タグ : / 解いたユーザー数 74
作問者 :
koyumeishi
タグ : / 解いたユーザー数 74
作問者 :

問題文最終更新日: 2022-08-14 14:15:39
Python に標準装備されている SQLite を yukicoder で動かしてみる実験的問題です。 いろいろ不具合があるかも知れません。
問題文
平面上に 個の点があります。
これらの点は次のような構造で SQLite のデータベースに格納されています。
CREATE TABLE point( id INTEGER PRIMARY KEY, x INTEGER, y INTEGER);
>TABLE point +----+---+---+ | id| x| y| +----+---+---+ | 1| x1| y1| +----+---+---+ | 2| x2| y2| (略) | n| xn| yn| +----+---+---+次のようなクエリが 個与えられるので、これに答えるような SQLite の実行文を出力してください。
- であるような点の数を出力せよ
入力
点の情報は開示されませんが、次の制約を満たします。
点の座標は全て整数で、複数の点が同じ位置に存在することはありません。
クエリは次の制約満たします。
出力
各クエリ毎 一つのSELECT文を使って下さい。 i 回目のSELECT文の結果が i 回目のクエリの答えとみなされます。
';' を SQL文のセパレータとして使っているので、行末の ';' を忘れないでください。
SELECT文以外も使用可能です。
この問題はリアクティブ問題です。 出力時の flush を忘れないでください。
注) 解答プログラムにクエリの結果は返されません。
サンプル
サンプル1
入力
ジャッジ側の点群が次のような場合の例です。
(3, 2) (8, 2) (9, 8) (3, 1) (4, 4) (1, 4) (0, 4) (3, 7) (0, 8) (7, 2)
与えられるクエリです。
2 6 7 2 7 10 10 10 10
出力
一つ目のクエリ : 6 <= x <= 7, 2 <= y <= 7 であるような点は (7,2) のみなので、 1 が返されるような SELECT文 を出力すれば正解と見なされます。
二つ目のクエリ : (10, 10) は点群に存在しないので、 0 が返されるような SELECT文 を出力すれば正解と見なされます。
SELECT count(*) FROM point WHERE x=7 AND y=2; SELECT count(*) FROM point WHERE x=10 AND y=10;
実際に点群は開示されないので、もう少し工夫しましょう。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。