Jelajahi Sumber

Clion on mac may be have a bug when exec if

tangs 7 tahun lalu
induk
melakukan
fa9d71a487
4 mengubah file dengan 184 tambahan dan 0 penghapusan
  1. 7 0
      section3-1/CMakeLists.txt
  2. 48 0
      section3-1/main.cpp
  3. 7 0
      section3-2/CMakeLists.txt
  4. 122 0
      section3-2/main.cpp

+ 7 - 0
section3-1/CMakeLists.txt

@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.6)
+project(section3_1)
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+
+set(SOURCE_FILES main.cpp)
+add_executable(section3_1 ${SOURCE_FILES})

+ 48 - 0
section3-1/main.cpp

@@ -0,0 +1,48 @@
+#include <iostream>
+#include<algorithm>
+#include <vector>
+
+using namespace std;
+
+struct Pair {
+    int start;
+    int end;
+};
+
+bool compare(Pair a, Pair b) {
+    return a.end < b.end;
+}
+
+int maxPart(vector<Pair> pairs) {
+    if (pairs.size() < 1) {
+        return 0;
+    }
+    sort(pairs.begin(), pairs.end(), compare);
+
+    int result = 1;
+    int start = pairs[0].end;
+    for (int i = 1; i < pairs.size(); i++) {
+        if (pairs[i].start >= start) {
+            start = pairs[i].end;
+            result++;
+        }
+    }
+    return result;
+}
+
+int main() {
+    int n;
+    while (cin >> n) {
+        if (n < 1) {
+            continue;
+        }
+        vector<Pair> pairs;
+        for (int i = 0; i < n; i++) {
+            Pair pair;
+            cin >> pair.start >> pair.end;
+            pairs.push_back(pair);
+        }
+        cout << maxPart(pairs) << endl;
+    }
+    return 0;
+}

+ 7 - 0
section3-2/CMakeLists.txt

@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.6)
+project(section3_2)
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+
+set(SOURCE_FILES main.cpp)
+add_executable(section3_2 ${SOURCE_FILES})

+ 122 - 0
section3-2/main.cpp

@@ -0,0 +1,122 @@
+#include <iostream>
+#include <vector>
+#include <algorithm>
+
+using namespace std;
+
+bool compare(int a, int b) {
+    return a > b;
+}
+
+int main2() {
+    cout << "halo" << endl;
+    int i = 1;
+    cout << i << endl;
+    return 0;
+}
+
+int main() {
+    int n = 0, tmp = 0;
+    vector<int> tian;
+    vector<int> king;
+    while (cin >> n) {
+        if (n < 1) {
+            break;
+        }
+        int count = 0;
+        for (int i = 0; i < n; i++) {
+            cin >> tmp;
+            tian.push_back(tmp);
+        }
+        for (int i = 0; i < n; i++) {
+            cin >> tmp;
+            king.push_back(tmp);
+        }
+        sort(tian.begin(), tian.end());
+        sort(king.begin(), king.end());
+
+//        cout << " > " << endl;
+        for (int i = 0; i < tian.size(); i++) {
+//            cout << "index:: " << tian.size() << ":" << i << endl;
+            for (int j = 0; j < king.size(); j++) {
+//                cout << king.size() << ":" << j << endl;
+                if (tian.at(i) > king.at(j)) {
+//                    cout << "i: " << i << "; tian: " << tian.at(i) << "; j: " << j << "; king: " << king.at(j) << endl;
+                    tian.erase(tian.begin() + i);
+                    king.erase(king.begin() + j);
+                    count++;
+                    j--;
+
+//                    cout << "-----" << i << "-" << tian.size() << "-" << j << "-" << king.size() << endl;
+                    if (i == tian.size()) {
+                        i--;
+//                        cout << "iiiiii" << i << endl;
+                    }
+                    if (j == king.size()) {
+                        j--;
+                    }
+//                    cout << "----- --- :" << i << ":-:" << tian.size() << ":-:" << j << ":-:" << king.size() << endl;
+                    continue;
+                }
+            }
+        }
+
+
+//        cout << tian.size() << " " << tian.at(0) << endl;
+//        tian.erase(tian.begin());
+//        cout << tian.size() << " " << tian.at(0) << endl;
+//        cout << " < " << endl;
+        for (int i = 0; i < tian.size(); i++) {
+            for (int j = 0; j < king.size(); j++) {
+                if (tian.at(i) == king.at(j)) {
+                    cout << "one i: " << i << "; at:" << tian.at(i) << "; size: " << tian.size() << "; j: " << j
+                         << "; at" << king.at(j) << "; size: " << king.size() << endl;
+                    tian.erase(tian.begin() + i);
+                    king.erase(king.begin() + j);
+                    j--;
+                    if (i >= tian.size()) {
+                        i--;
+                    }
+                    if (j >= king.size()) {
+                        cout << "j - size:" << (j - king.size()) << endl;
+                        cout << "j: " << j << "; size: " << king.size() << "; j > size:" << (j < king.size()) << endl;
+                        j--;
+                    }
+                    cout << "two i: " << i << "; at:" << tian.at(i) << "; size: " << tian.size() << "; j: " << j
+                         << "; at" << king.at(j) << "; size: " << king.size() << endl;
+                    continue;
+                }
+            }
+        }
+
+
+//        cout << " = " << endl;
+//        for (int i = 0; i < tian.size(); i++) {
+//            for (int j = 0; j < king.size(); j++) {
+//                if (tian.at(i) < king.at(j)) {
+//                    cout << "i: " << i << "; -" << tian.at(i) << "; j: " << j << "; -" << king.at(j) << endl;
+//                    tian.erase(tian.begin() + i);
+//                    king.erase(king.begin() + j);
+//                    count--;
+//                    j--;
+//                    continue;
+//                }
+//            }
+//        }
+        count -= tian.size();
+
+        cout << count * 100 << endl;
+
+//        for (int j = 0; j < tian.size(); ++j) {
+//            cout << tian.at(j);
+//        }
+//        cout << endl;
+//        for (int j = 0; j < king.size(); ++j) {
+//            cout << king.at(j);
+//        }
+//        cout << endl;
+        tian.clear();
+        king.clear();
+    }
+    return 0;
+}