Kaynağa Gözat

Lägg till massa problem. Vet inte vilka som fungerar mer än 489

Jonatan Gezelius 6 yıl önce
ebeveyn
işleme
050973f68c
3 değiştirilmiş dosya ile 194 ekleme ve 0 silme
  1. 86 0
      p10409/p10409.cpp
  2. 69 0
      p489/p489.cpp
  3. 39 0
      p900/p900.cpp

+ 86 - 0
p10409/p10409.cpp

@@ -0,0 +1,86 @@
+#include <algorithm>
+#include <array>
+#include <iostream>
+#include <map>
+#include <utility>
+#include <vector>
+#include <iomanip>
+#include <sstream>
+#include <climits>
+#include <queue>
+#include <list>
+
+using namespace std;
+
+typedef unsigned int nat;
+
+class Die
+{
+public:
+    Die() {}
+
+    nat top() { return t; }
+
+    void north()
+    {
+        nat temp = 7-n;
+        n = t;
+        t = temp;
+    }
+
+    void south()
+    {
+        nat temp = 7-t;
+        t = n;
+        n = temp;
+    }
+
+    void east()
+    {
+        nat temp = 7-t;
+        t = w;
+        w = temp;
+    }
+
+    void west()
+    {
+        nat temp = 7-w;
+        w = t;
+        t = temp;
+    }
+
+private:
+    nat t = 1, n = 2, w = 3;
+};
+
+int main()
+{
+    nat tests;
+
+    while(cin >> tests)
+    {
+        if(!tests)
+            break;
+
+        Die d;
+        for(nat i = 0; i < tests; ++i)
+        {
+            string str;
+
+            cin >> str;
+
+            if(str == "north")
+                d.north();
+            else if(str == "east")
+                d.east();
+            else if(str == "south")
+                d.south();
+            else
+                d.west();
+        }
+
+        cout << d.top() << endl;
+    }
+
+    return 0;
+}

+ 69 - 0
p489/p489.cpp

@@ -0,0 +1,69 @@
+#include <algorithm>
+#include <array>
+#include <iostream>
+#include <map>
+#include <utility>
+#include <vector>
+#include <iomanip>
+#include <sstream>
+#include <climits>
+#include <queue>
+#include <list>
+#include <set>
+#include <string>
+
+using namespace std;
+
+typedef unsigned int nat;
+
+int main()
+{
+    int game_num = 1;
+
+    while(true)
+    {
+        cin >> game_num;
+        if(game_num == -1)
+            break;
+
+        string answer, guess;
+        bool win = false, lose = false;
+        set<char> correct, correctly_guessed;
+
+        nat guesses = 7;
+
+        cin >> answer >> guess;
+
+        for(auto c : answer)
+        {
+            correct.emplace(c);
+        }
+
+        for(auto c : guess)
+        {
+            if(answer.find(c) != string::npos)
+            {
+                if(correctly_guessed.emplace(c).second && correctly_guessed.size() == correct.size())
+                {
+                    win = true;
+                    break;
+                }
+            }
+            else if(!(--guesses))
+            {
+                lose = true;
+                break;
+            }
+        }
+
+        cout << "Round " << game_num << endl;
+        if(win)
+            cout << "You win." << endl;
+        else if(lose)
+            cout << "You lose." << endl;
+        else
+            cout << "You chickened out." << endl;
+    }
+
+    return 0;
+}

+ 39 - 0
p900/p900.cpp

@@ -0,0 +1,39 @@
+#include <algorithm>
+#include <array>
+#include <iostream>
+#include <map>
+#include <utility>
+#include <vector>
+#include <iomanip>
+#include <sstream>
+#include <climits>
+#include <queue>
+#include <list>
+
+using namespace std;
+
+typedef unsigned long long nat;
+
+int main()
+{
+    nat len;
+
+    while(cin >> len)
+    {
+        if(!len)
+            break;
+
+        cout << "Read len: " << len << endl;
+
+        nat result = 1;
+
+        for(nat i = 1; i <= len/2; ++i)
+        {
+            nat new_combinations = pow((i+1), (len - 2*i)) - 2*(i+1);
+            result += new_combinations;
+            cout << "Found " << new_combinations << " for i = " << i << " Result so far: " << result << endl;
+        }
+        cout << result << endl;
+    }
+    return 0;
+}