結果
問題 |
No.366 ロボットソート
|
ユーザー |
|
提出日時 | 2016-04-29 23:00:33 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 784 bytes |
コンパイル時間 | 661 ms |
コンパイル使用メモリ | 65,528 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-29 17:42:08 |
合計ジャッジ時間 | 1,549 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <algorithm> #include <iostream> #include <string> #include <vector> using namespace std; int main() { int n, k; int a[1000]; int count = 0; cin >> n >> k; for (int ni = 0; ni < n; ++ni) { cin >> a[ni]; } for (int d = 0; d < k; ++d) { vector<int> b; for (int i = d; i < n; i += k) { b.push_back(a[i]); } for (size_t i = 0; i < b.size(); ++i) { for (size_t j = i + 1; j < b.size(); ++j) { if (b[i] > b[j]) { ++count; } } } sort(b.begin(), b.end()); for (size_t i = 0; i < b.size(); ++i) { a[d + k * i] = b[i]; } } for (int ni = 0; ni < n - 1; ++ni) { if (a[ni] > a[ni + 1]) { cout << -1 << endl; return 0; } } cout << count << endl; return 0; }