#include <iostream> using namespace std; class Stack { private: int Array[100000]; int Top; public: Stack(int n); void Push(int n); void Pop(); int GetTop(); int GetSize(); }; Stack::Stack(int n) { Top = 0; } void Stack::Push(int n) { Array[Top++] = n; } void Stack::Pop() { Top--; } int Stack::GetTop() { return Array[Top - 1]; } int Stack::GetSize() { return Top; } int main() { int N; cin >> N; Stack Data(0); bool Digit[100000]; for (int i = 0; i < 100000; i++) Digit[i] = true; int j_init = 1; for (int i = 0; i < N; i++) { int Temp; cin >> Temp; for (int j = j_init; j <= Temp; j++) { if (Digit[j - 1]) { Data.Push(j); Digit[j - 1] = false; cout << "+" << endl; } } for (int j = Data.GetTop(); j >= Temp; j--) { Data.Pop(); cout << "-" << endl; } j_init = Data.GetTop(); } }
# include < iostream > # include < vector > # include < string > using namespace std ; int main ( ) { string sInput ; getline ( cin , sInput , '\n' ) ; int Time = 1 ; int Count = 0 ; vector < string > Storage ; for ( int i = 0 ; i < sInput . size ( ) ; i + + ) { for ( int j = 0 ; ( j + Time - 1 ) < sInput . size ( ) ; j + + ) Storage . push_back ( sInput . substr ( j , Time ) ) ; Time + + ; } bool * Visited = new bool [ Storage . size ( ) * sizeof ( bool ) ] ; for ( int i = 0 ; i < Storage . size ( ) ; i + + ) { Visited [ i ] = true ; for ( int j = 0 ; j < Storage . size ( ) ; j + + ) { if ( i ! = j & & Storage [ i ] = = Storage [ j ] ) { Visited [ i ] = false ; Visited [ j ] = true ; break ; } } } for ( int i = 0 ; i < Storage . size ( ) ; i + + ) if ( Visited [ i ] ) Count ...
댓글
댓글 쓰기