diff --git a/.gitignore b/.gitignore index 83f79cb..931a5eb 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,6 @@ *.class *.pyc *.html +.idea/ diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..79b3c94 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/2017/JULY.md b/2017/JULY.md index 9a4c22d..c9f4e1d 100644 --- a/2017/JULY.md +++ b/2017/JULY.md @@ -13,7 +13,7 @@ | [JULY17](https://www.codechef.com/JULY17) | [CHEFSIGN](https://www.codechef.com/JULY17/problems/CHEFSIGN) | ★★ | | [![image](../img/GH.png)](JULY/JULY17/CHEFSIGN/CHEFSIGN.cpp) [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14502863) (100 pts) [![image](../img/AC.png)](#) | | [![image](../img/GH.png)](JULY/JULY17/CHEFSIGN/CHEFSIGN.py) [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14488195) (100 pts) [![image](../img/AC.png)](#) | | [JULY17](https://www.codechef.com/JULY17) | [CALC](https://www.codechef.com/JULY17/problems/CALC) | ★★★ | [![image](../img/GH.png)](JULY/JULY17/CALC/CALC.c) [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14483078) (100 pts) [![image](../img/AC.png)](#) | [![image](../img/GH.png)](JULY/JULY17/CALC/CALC.cpp) [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14439041) (100 pts) [![image](../img/AC.png)](#) | | [![image](../img/GH.png)](JULY/JULY17/CALC/CALC.py) [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14490655) (100 pts) [![image](../img/AC.png)](#) | | [JULY17](https://www.codechef.com/JULY17) | [IPCTRAIN](https://www.codechef.com/JULY17/problems/IPCTRAIN) | ★★★ | | [![image](../img/GH.png)](JULY/JULY17/IPCTRAIN/IPCTRAIN.cpp)  [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14431781) (100 pts) [![image](../img/AC.png)](#) | | | -| [JULY17](https://www.codechef.com/JULY17) | [EXPTREE](https://www.codechef.com/JULY17/problems/EXPTREE) | ★★★★ | | | | [![image](../img/GH.png)](JULY/JULY17/EXPTREE/EXPTREE.py)  [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14541593) (100 pts) [![image](../img/AC.png)](#) | +| [JULY17](https://www.codechef.com/JULY17) | [EXPTREE](https://www.codechef.com/JULY17/problems/EXPTREE) | ★★★★ | | [![image](../img/GH.png)](JULY/JULY17/EXPTREE/EXPTREE.cpp)  [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14568032) (100 pts) [![image](../img/AC.png)](#) | | [![image](../img/GH.png)](JULY/JULY17/EXPTREE/EXPTREE.py)  [![image](../img/CC.png)](https://www.codechef.com/viewsolution/14541593) (100 pts) [![image](../img/AC.png)](#) | | [JULY17](https://www.codechef.com/JULY17) | [PSHTTR](https://www.codechef.com/JULY17/problems/PSHTTR) | ★★★★ | | | | | | [JULY17](https://www.codechef.com/JULY17) | [TWOCOINS](https://www.codechef.com/JULY17/problems/TWOCOINS) | ★★★★ | | | | | | [JULY17](https://www.codechef.com/JULY17) | [SRVRS](https://www.codechef.com/JULY17/problems/SRVRS) | ★★★★★ | | | | | diff --git a/2017/JULY/JULY17/CHEFSIGN/CHEFSIGN.cpp b/2017/JULY/JULY17/CHEFSIGN/CHEFSIGN.cpp index 7b572d3..f9a9a0d 100644 --- a/2017/JULY/JULY17/CHEFSIGN/CHEFSIGN.cpp +++ b/2017/JULY/JULY17/CHEFSIGN/CHEFSIGN.cpp @@ -5,7 +5,6 @@ using namespace std; int main() { - std::ios::sync_with_stdio(false); int testCases; cin >> testCases; diff --git a/2017/JULY/JULY17/EXPTREE/EXPTREE.cpp b/2017/JULY/JULY17/EXPTREE/EXPTREE.cpp new file mode 100644 index 0000000..eaef220 --- /dev/null +++ b/2017/JULY/JULY17/EXPTREE/EXPTREE.cpp @@ -0,0 +1,58 @@ +// BY: _nishant0208_ +#include +#include +using namespace std; +typedef long long ll; +#define MAX1 1000000007 +#define MAX2 1000000009 +#define MAX 100001 +ll MOD; +ll exponent(ll, ll); +ll modinverse(ll); +int main(){ + ll t; + cin >> t; + while(t--){ + ll n; + cin >> n; + n--; + ll x, y, temp1, temp2; + MOD = MAX1; + x = ((n % MOD) * ((n + 1) % MOD)) % MOD; + y = (2 * ((2 * n - 1) % MOD)) % MOD; + if(x % 2 == 0 && y % 2 == 0){ + x /= 2; + y /= 2; + } + if(x % 3 == 0 && y % 3 == 0){ + x /= 3; + y /= 3; + } + temp1 = ((x % MOD) * (modinverse(y))) % MOD; + MOD = MAX2; + x = ((n % MOD) * ((n + 1) % MOD)) % MOD; + y = (2 * ((2 * n - 1) % MOD)) % MOD; + if(x % 2 == 0 && y % 2 == 0){ + x /= 2; + y /= 2; + } + if(x % 3 == 0 && y % 3 == 0){ + x /= 3; + y /= 3; + } + temp2 = ((x % MOD) * (modinverse(y))) % MOD; + cout << temp1 << " " << temp2 << "\n"; + } + return 0; +} +ll exponent(ll a, ll b) { + if(b == 0) + return 1; + ll temp = (exponent(a, b / 2)) % MOD; + temp = (temp * temp) % MOD; + return (b % 2 == 0) ? temp : ((a % MOD) * temp) % MOD; +} +ll modinverse(ll val) { + return exponent(val, MOD - 2); +} +